Methods and systems for electronics assembly systems pricing and customer benefit sharing

ABSTRACT

Methods and systems according to the present invention permit a manufacturer, supplier or other purveyor of electronics assembly system equipment, solutions or the like, to market and to sell their offerings based on a customer benefit sharing approach. The purveyor&#39;s incentives are therefore aligned with the customer&#39;s and superior performance, if achieved, will not only benefit the customer, but may also redound to the financial benefit of the purveyor. Various such customer-benefit sharing approaches, including performance guarantees and the setting of prices to be paid by customers based upon actual performance of the system(s) and/or solutions(s) purchased, are described, as are the underlying methods and tools that permit the customer benefit sharing approach to be done in a practicable fashion. The purveyor&#39;s ability to offer such arrangements turns on its ability to accurately and efficiently model the customer&#39;s system under various scenarios, according to principles of the present invention.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This applications claims the benefit for purposes of priority,under 35 U.S.C. §119(e), of U.S. Patent Application Serial Nos.60/208,664, filed Jun. 1, 2000, and 60/280,679 filed Mar. 30, 2001, thecontents of which are herein incorporated by reference in theirentirety.

FIELD OF THE INVENTION

[0002] The present invention relates in general to the field ofelectronics assembly systems and, in particular, to tools and methodsfor assisting consultation and sales efforts relating to such systems.

BACKGROUND OF THE INVENTION

[0003] Manufacturers of electronics assembly systems, when marketing andselling their products, solutions, and services have historically beenlimited to the well-known approach in which particular goods, solutionsor services are offered at a negotiated price in advance of their actualdelivery and use, and therefore before the actual value of thedeliverables are realized and are capable of being measured. As aresult, manufacturers to some extent bear a risk that the deliverableswill underperform, a factor that presumably is fed back into the pricethe purveyor is able to charge. Because the effort involved inpredicting the performance and expected value of electronics assemblysystems and solutions has been great, and the turn-around times havebeen long, there has been no mechanism to reallocate the risks andrewards associated with the acquisition of such systems.

[0004] Purveyors and customers alike have been hampered in their abilityto satisfactorily predict the performance of particular new electronicsassembly configurations. Customers might thereby be driven by theexisting lack of predictive power into electronics assembly resourceallocation decisions that do not result in the optimal return oninvestment or in a minimized cost of ownership. Many creative approachesto structuring electronics assembly equipment and solutions transactionshave not been realized.

[0005] Methods and tools for modeling and simulating production andassembly lines have been in existence, but they have been unable tosupport the goals achieved by the present invention. A spreadsheet suchas Microsoft Excel® 98, for example, can be used to perform staticmodeling of an assembly line. While spreadsheets are easy to use andprovide generally good results for static modeling, however, they do notadequately take into account how various factors interact with eachother. A spreadsheet can be configured to show that certain pieces ofequipment in an assembly line may have a downtime of 25%, but it cannotbe configured adequately to show that at various times, all of thesepieces of equipment might be down at the same time, much less predictthe actual impact such an event might have on line performance.

[0006] Discrete event simulation software products, such as Witness®2000 (available from Lanner Group, Greenwich England), can providebetter estimates of how a line may actually operate. One drawback ofusing existing discrete event simulation products, however, is theamount of time and skill they demand to set up a simulation of an actualor proposed system. Most discrete event simulation packages require thathighly detailed simulation objects be created by the person performingthe modeling. These objects contain numerous parameters, some of whichmay be variable in nature and some of which are inherent in the piece ofequipment that the simulation object represents.

[0007] Consultants typically spend a great deal of time, sometimesseveral weeks, building a discrete event simulation model. A simulationrequiring such a protracted set up process is of little value to asalesperson pitching equipment, or to a consultant trying to demonstrateways of increasing an assembly system's efficiency during the course ofa customer visit. It would be preferable if a consultant or asalesperson attempting to sell products or services were equipped todeliver a persuasive, well-supported sales presentation, or neededconsultation, in far less time. The well-founded presentation, based onan accurate assessment of the customer benefit particulars of one ormore proposed electronics assembly system configurations, would alsoideally provide a basis for a variety of customer benefit sharingapproaches that would permit the two parties to allocate risk and rewardin a mutually agreeable fashion that places the proper incentives onboth parties.

[0008] Prior to the present invention, there appears to have been noadequate way for a consultant or salesperson to offer a customer abenefit sharing approach to financing the prospective purchase. Thisinability may have been due, among other things, to the absence ofmethods to quickly and easily build and run a simulation model for aproposed electronics assembly system configuration that would provideadequate computational results within the time frame of a customervisit. Moreover, the level of skill required to build a simulation haveexceeded the skill level of a typical salesperson. It would therefore bevaluable to provide one or more approaches for purveyors of electronicsassembly systems equipment and/or solutions to base the financing oftheir transactions on customer benefit sharing approaches and to havetools and methods to support these approaches.

SUMMARY OF THE INVENTION

[0009] The present invention provides a set of approaches forelectronics assembly equipment manufacturers, solutions providers andother suppliers to make offers to customers based on a benefit sharingbasis. The various embodiments of the present invention are applicableto electronics assembly systems, equipment, solutions or other offering,and may be referred to below collectively as electronic assembly systemssolutions.

[0010] One embodiment of the present invention provides for a method forpricing an electronics assembly system solution for a customer. First,with the aid of a computer model, a customer benefit to be realizedthrough the use of the electronics assembly system solution ispredicted. A customer benefit guarantee is then generated, based on thepredicted customer benefit, and a message relating to the customerbenefit guarantee associated with the predicted customer benefit istransmitted to the customer.

[0011] Another embodiment of the present invention is directed to amethod for financing the price of a customer's purchase of an electronicassembly system solution. An electronics assembly system solution isprovided (i.e., arrived at or defined), and a customer benefitassociated with the solution is computed. Then, a monetary value basedon the customer benefit is derived, and an amount based upon this valueis collected from the customer.

[0012] In another embodiment, a method for selling a customer anelectronic assembly system solution is disclosed. A performance-basedcontract for sale of the assembly system solution is offered, whereinthe price of the solution is a function of the performance of thesolution, Upon customer acceptance, the assembly system solution isdelivered. The performance of the delivered assembly system solution ismonitored, and compensation for the seller is assessed based upon themonitored performance and the price function. A customer benefitassociated with the solution is computed, as is a monetary value basedon the computed customer benefit. An amount based on the computermonetary value may then be collected from the customer.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]FIG. 1 is a flow chart illustrating the overall file structure andlogic flow of one embodiment of the present invention.

[0014] FIGS. 2-2A are screen views of spreadsheets (e.g., in MS Excel®)that are configured to act as an input interface in an embodiment of thepresent invention.

[0015]FIG. 3 illustrates the files and directories that are set up whenthe tool according to an embodiment of the present invention is run.

[0016] FIGS. 4-4C are screen views of spreadsheets (e.g., in MS Excel®)configured to act as interface for inputting shift schedule data in anembodiment of the present invention.

[0017] FIGS. 5-5C are screen views of spreadsheets (e.g., in MS Excel®)configured to act as an interface for inputting line configurations inan embodiment of the present invention.

[0018]FIG. 6 illustrates how pull-down menus, in an embodiment of thepresent invention, may be used with the screen shown in FIG. 5.

[0019] FIGS. 7-7F illustrates a partially populated line configurationspread sheet interface in an embodiment of the present invention.

[0020] FIGS. 8-8B illustrates a board data input interface in anembodiment of the present invention.

[0021] FIGS. 9-9B illustrates a built simulation, in an embodiment ofthe present invention, that is ready to be run.

[0022]FIG. 10 is a screen view of an output interface in the form of aspreadsheet that is capable of generating customer specific reports, inan embodiment of the present invention.

[0023]FIG. 11 is a screen view of the screen that appears, in anembodiment of the present invention, when the “Boundaries” button ofFIG. 10 is selected.

[0024]FIG. 12 is a screen view of the screen that appears, in anembodiment of the present invention, when the “Set-up” button of FIG. 10is selected.

[0025]FIG. 13 is a screen view of the screen that appears, in anembodiment of the present invention, when the “Quality” button of FIG.10 is selected.

[0026]FIG. 14 is a screen view of the screen that appears, in anembodiment of the present invention, when the “Maintenance” button ofFIG. 10 is selected.

[0027]FIG. 15 is a screen view of the screen that appears, in anembodiment of the present invention, when the “Cost of Ownership” buttonof FIG. 10 is selected.

[0028]FIG. 16 is a screen view of a graphical report of Cost ofOwnership, in an embodiment of the present invention.

[0029]FIG. 16a is a flow-chart illustrating a cost of ownership routine,in an embodiment of the present invention.

[0030]FIG. 17 is a flow-chart illustrating a process for using theCustomer Benefit Tool, in an embodiment of the present invention.

[0031]FIG. 18 is a diagram showing a set of relationships betweencustomer benefit modeling according to the present invention to variousaspects of objectives of a business model that may employ aspects of thepresent invention.

[0032]FIG. 19 is a diagram showing a set of relationships betweencustomer benefit modeling according to the present invention to variousaspects of objectives of an alternative business model that may employaspects of the present invention.

[0033]FIG. 20 illustrates an electronics assembly systems solutionsbusiness model embodying and employing aspects of the present invention.

[0034]FIG. 21 graphically shows electronics assembly customer benefitsand enablers provided by various aspects of the present invention.

[0035]FIG. 22 graphically illustrates an electronics assembly solutionsvalue proposition from a customer project life cycle view.

[0036]FIG. 23 is a high-level flow-chart illustrating a consultativesales process business method according to the present invention.

[0037]FIG. 24 is a flow-chart illustrating a method for using thecustomer benefit modeling tool of the present invention to develop abasic line scenario.

[0038]FIG. 25 is a flow-chart illustrating customer project life cycledevelopment in accordance with the present invention.

[0039]FIG. 26 is a flow-chart illustrating customer project life cycledevelopment with added optimized design capabilities, in accordance withthe present invention.

[0040]FIG. 27 is a flow-chart illustrating customer project life cycledevelopment with added automated performance monitoring capabilities, inaccordance with the present invention.

[0041]FIG. 28 is a flow-chart illustrating customer project life cycledevelopment with added capabilities to share data between design andmonitoring activities, in accordance with the present invention.

[0042]FIG. 29 is a flow-chart illustrating customer project life cycledevelopment with added optimized performance capabilities in which acommon database is used, in accordance with the present invention.

[0043]FIG. 30 is a flowchart illustrating an embodiment of aconsultative sales method according to the present invention.

[0044]FIG. 31 is a flowchart illustrating an alternative to theembodiment of FIG. 30, which steps providing for the modification of aproposed assembly system solution.

[0045]FIG. 32 is a flowchart illustrating an embodiment of aconsultative sales method according to the present invention, in whichthe configuration, modeling and evaluation of electronics assemblyconfigurations is performed in an iterative manner until a performancemeasure satisfies one or more customer constraints and an offer is made.

[0046]FIG. 33 is a flowchart illustrating an alternative embodiment of aconsultative sales method according to the present invention, in whichthe configuration, modeling and evaluation of electronics assemblyconfigurations are performed

[0047]FIG. 34 is a flowchart illustrating a method for pricing anelectronics assembly system solution.

[0048]FIG. 35 is a flowchart illustrating a method for financing theprice of a customer's purchase of an electronic assembly systemsolution.

[0049]FIG. 36 is a flowchart illustrating a method for selling acustomer an electronic assembly system solution.

DETAILED DESCRIPTION OF THE INVENTION

[0050] The present invention provides, among other things, tools andmethods that enable quick and easy modeling and simulation of productionassembly lines without the need to spend days or weeks buildingsimulation models. It is particularly well-suited for use in modelingelectronic component assembly production lines. Of course, it is alsouseful in modeling other assembly and manufacturing processes. Becausethe present invention enables quick, efficient modeling that typicallycan be performed in approximately 30 minutes or less, it is an idealtool for use by electronics assembly equipment salespersons, as well asconsultants and customers.

[0051] The present invention provides methods and tools for modeling aconfiguration for, among other things, an electronics assembly systemand generating performance measures associated with a givenconfiguration based upon a simulation of the behavior of the system. Inparticular, the methods and tools make it possible for an electronicsassembly equipment salesperson or consultant to generate a simulationmodel for purposes of a sales pitch or a consulting project withinapproximately half and hour, or even less, to conduct model-basedprediction of system performance under various configurationassumptions, and finally, to generate for an actual or prospectivecustomer one or more expected cost of ownership values for particularconfiguration assumptions. In other words, the consultant or salespersoncan generate and evaluate configuration options for a customer in “realtime” or “on the fly”, during the course of a session with the customer.

[0052] The customer benefit modeling tool of the present inventionenables trained consultants to accurately model current and futurecustomer assembly systems at the line, multi-line, shop floor andfactory levels. It also enables the performance of customer systems tobe expressed in a range of key metrics that include, for example,throughput, cost performance, yield, OEE and COO. The customer benefittool according to the present invention can be used to accuratelyrepresent production reality because, in one embodiment, it can handledistributed inputs and events by using a dynamic model based on discreteevent simulation. This modeling approach enables separate analysis ofsystem design issues (e.g. equipment configuration, wip buffer sizing)and operations issues (e.g. staffing, material availability).

[0053] The customer benefit modeling tool can also providecustomer/project specific target benchmarking under defined, idealoperating conditions (e.g. no break downs, no run outs). That is, theperformance that one would expect under short duration “acceptancetesting.” The tool may also be configured to enable target productionmetrics to be established based on realistic conditions. It can also beconfigured to model the impact of changing operations related variables.

[0054] The tool advantageously allows customer models to be validatedunder “acceptance test” conditions to ensure that the machine basedprocesses and cycle times have been accurately modeled. As part of thevalidation process, the tool may allow a customer-specific model to becalibrated against real data. The validation process may focus onthroughput or yield. In one embodiment, throughput is dominant factor.

[0055] In accordance with the present invention, a user proposes aconfiguration for an assembly line by selecting from among objects thatrepresent assembly line equipment and parameters characterizing theoperation of the equipment. The assembly line equipment often hasvarious operating characteristics well-known to industrial engineers(e.g., mean time between failure, mean time to repair, how often a pieceof equipment needs manual assistance, how long the manual assistancetakes, etc.). Typically, these operating characteristics are empiricallyderived statistical measures or models that may be fixed or that mayvary as a function of one or more variables. Sometimes, the order inwhich the equipment will be laid out to form a line may also be part ofthe configuration process. Specific values for the operatingcharacteristics, determined statistically, are associated with eachpiece of equipment in the proposed line configuration. Shift data,production part data, and other line parameters may also be assignedvalues. The configuration and associated operating characteristic valuesare then used to build a discrete event simulation.

[0056] In some embodiments of the present invention, building a discreteevent simulation requires creating detailed simulation objects. Tostreamline the building of a simulation by selecting and arranging thesimulation objects, templates may be created in advance for eachsimulation object and values may be read into the template to create thesimulation object. After the discrete event simulation is run through asuitable number of trials, performance results gathered for those trialsare exported to a reporting means. The reporting means may contain aninterface that allows the user to input specific data, which in turnwould allow for custom reports to be generated that present theperformance results in a manner that can be tailored by a salesperson orconsultant to the needs of the customer or the situation.

[0057] The assembly equipment modeling and simulation according to thepresent invention may be performed virtually anywhere, using suitablecomputer software, further described below, that runs solely on theprocess of any type of personal computer, or in a client-server fashionover a network, such as the Internet, or in communication with sites onthe World-Wide-Web.

[0058] The computer software provides a means for representing assemblyline components and parameters in a configuration that is chosen on thefly. A means for reading data and parameters about each selectedcomponent and proposed line configuration and parameter setting is alsoprovided. A simulation generating means takes the inputted lineconfiguration and parameter setting and associated data and uses thatinformation to generate a simulation, which in some embodiments involvesbuilding simulation objects from templates. Output information derivedby running the simulation over a suitable number of trials is sent to areporting means.

[0059] The means for representing the assembly line components in theuser-chosen configuration and having user-chosen parameter settings, aswell as the reporting means, may take the form of a spreadsheet. Sincethe reporting means may be a spreadsheet, it may be configured to acceptuser-specific inputs and generate custom reports based on thisinformation.

[0060] In accordance with the present invention, a consultant, salesperson, customer, or an assembly line designer can quickly performsophisticated simulations on a computer by inputting or selecting simpledesigner computer representations, e.g., designer objects, whichrepresent particular pieces of equipment that are used in an assemblyline, from a set of such representations created in advance. In thedescription of the embodiments, “designer objects” and “simulationobjects” are described, but the invention contemplates the use of anysuitable computer representations. The computer is configured to takethis list of designer objects, and import from a database key parametersfor each designer object in the list, as well as other production linedata; launch a discrete event simulation tool, which contains templatesfor detailed simulation objects; build detailed simulation objects fromthe templates and the designer objects; run a simulation, usingsimulation software, such as Witness®, ProModel,® Automod,® Simul8,®Arena,® Saimple®; and output specific simulation and modeling parametersin a user friendly manner.

[0061] The present invention achieves its efficiency for severalreasons. Notably, the populating of detail-intensive simulation objectsin the simulation tool is largely automated. A user performing thesimulation needs only a low level of computer skill and does not need tospend large amounts of time setting up and building a simulation. In oneembodiment, the user input interface takes the form of a spreadsheet,preferably an MS Excel®, spreadsheet. From the spreadsheet, the user canbuild a simulation model in a sophisticated simulation software package,examples of which were listed above, launch the simulation software, andrun the simulation. After a particular simulation is run, the outputsmay stored in a separate spreadsheet.

[0062]FIG. 1 provides a high-level logic flow for one embodiment of thepresent invention. As is illustrated in FIG. 1, several different userinterfaces are available. MS Excel,® spread sheets may be configured tofunction as input interfaces. In some embodiments, Visual Basic formsand Web forms may also be configured to function as the inputinterfaces. Not all of the input interfaces needs to take the same form.For example, a salesperson's interface may be a spread sheet, acustomer's may be a web form, and a consultant's may be a Visual Basicform. Those skilled in the art will recognize that various software canbe used to generate the input interfaces and in some cases they may bewritten from scratch by a skilled programmer.

[0063] By having multiple interfaces available, the interfaces may beadapted to a specific type of user. For example, there may be oneinterface for use by salespersons, another for use by consultants, andyet another for use by customers. To facilitate input, dialog boxes maybe created as part of the input interfaces. This allows for easyinputting of data and allows for selecting in advance the number andtype of inputs available.

[0064] After the user enters the requisite data via a user inputinterface, step 1 in FIG. 1, a routine is run to create and put the datain correct files and formats necessary to run a simulation. The routineat step 2 formats the data that was entered through the interface atstep 1 for use with a particular simulation software package accordingto the requirements of that package. For example, the interface mayallow a user to input cycle time in hours or minutes, but the simulationsoftware may need cycle time in seconds. As a further example, Witness®2000 has a specific format for shift data; however, it may be easier fora user to input shift data in terms of start time, break time, and endtime. The routine at step 2 takes the shift data as entered by the userand builds files and structures that can be used by the simulationpackage (e.g., Witness® 2000 or other available package). In someembodiments, data may be exported from the input interface directly tothe simulation package.

[0065] The routine in step 2, builds the module that is shown in Step 3as the CBM_Transfer.XLS module. This module may, but does notnecessarily, take the form of a spreadsheet. This module contains allthe files and data in the format required by the simulation software. Inessence, the module shown in Step 3 is a repository for the informationread in from the interface. The files and data in this module have afixed structure that is required by the simulation software.

[0066] Another routine is executed to build simulation objects from thetemplates, step 4. The code for implementing this module, in anembodiment of the present invention, is shown and described below.During this step, data, files, and information are read into thesimulation software from the module of step 3 to build a simulation.Also, during this step, the simulation software is launched.

[0067] Next, a simulation is run, step 5. At this point the simulationmodel and all associated files exist. The simulation is run anddisplayed on a computer screen.

[0068] A routine then exports values from the simulation routine to aReports spreadsheet, such as for example, an MS Excel® spreadsheet, step6. The Reports spreadsheet may contain a user input interface to allowfor the generation of custom reports based on customer-specific data. Insome embodiments, the reports may be generated in the simulationsoftware in addition to or in place of a report spreadsheet.

[0069] As is shown in FIG. 2, an input interface spreadsheet isconfigured to accept certain set-up data, such as the name of theproject being modeled, file management information, time of thesimulation run, etc. The user may, for example, enter the directorywhere the simulation software is saved. The user may also input aproject name, and the user may input a simulation time in a convenientunit, such as days.

[0070] The input spreadsheet can be configured with a soft button orother selection mechanism, such as the “Create Project” button shown inFIG. 2. When the user selects the “Create Project” button theappropriate subdirectories appear and the required files are copied.FIG. 3 illustrates files and directories that are created in thebackground when the “Create Project” button is selected in oneembodiment. For example, a CBM directory may be created and appropriatetemplates copied. In addition, a project directory may be created for aspecific project and populated with appropriate templates and files,such as the CBM.XLS, CMB-Transfer.XLS, and the CBM_Reports.XLS, asshown.

[0071] As is shown in FIG. 2, various other soft buttons may be employedto select various user interfaces and user requested processes. The“Shift Data” button opens a user interface as depicted in FIGS. 4-4C.This interface also takes the form of a spreadsheet. The user populatesthis spreadsheet with appropriate shift patterns, an example of which isshown in FIGS. 4-4C.

[0072] After the appropriate Shift data is entered, the user may selectthe “Line Configuration” button, shown in FIG. 2. Upon selecting thisbutton, the screen in FIGS. 5-5C appears. The user may then select theequipment to be added to the line. The user also can select where toinsert a piece of equipment. As is shown in FIG. 6, a drop down menu canbe employed to facilitate populating this spreadsheet.

[0073] Adding a piece of equipment results in the addition of a row inthe line configuration spreadsheet and adds to the number of lines whichare stored in process cells of the board spreadsheet, discussed below.(See FIGS. 7-7F). The process of adding equipment is continued until aline is completed. By using an insert procedure with the input of a rownumber and a delete procedure, which works accordingly, the firstversion of the line can be manipulated. Clicking on “Main” returns tothe main user interface.

[0074] As the user enters a specific piece of equipment at a particularcell of the column (or row), other cells in the same column (or row) areautomatically populated with values that correspond to specificoperating parameters for that piece of equipment. These parameters mayinclude, but are not limited to, Machine Cycle Time, Mean Time BetweenManual Assists, Mean Time to Assist, Shift Pattern (i.e. how many shiftsper day the machine will be operated for), Mean Time Between Failure,etc. FIGS. 5-5C illustrates, without limitation, some of the parametersthat may be associated with a specific piece of equipment.

[0075] The values for these parameters may be stored in an objectparameter database, which may take the form of another spreadsheet, thatcan be periodically updated based on real-world experience. Oneadvantage of maintaining a parameter database as a separate spreadsheetis that it may be updated over time with empirically derived, real-worlddata, that is gathered in the field for each component and each lineconfiguration that is developed. For example, the components of anassembly line can be configured to automatically track the data requiredfor these parameters. That data can then be used to update the secondspreadsheet. The tool may use the latest data available at theconclusion of each project, where the tool is employed, to update theobject database parameters.

[0076] In addition to inputting a specific line configuration throughthe “Line Configuration” spreadsheet interface and shift data throughthe “Shift Data” interface, the user can input specific board data byselecting the “Board Data” button at the main user interface shown inFIG. 2. As is shown in FIG. 8 the user may enter cycle times for everypiece of equipment, enter board specific data, enter a board to use forthe simulation, and then return to the main menu by clicking on “Main.”

[0077] After all the input spreadsheet interfaces are populated with thenecessary data, the user executes one or more routines that buildsimulation objects from the data in the spreadsheet. As is shown in FIG.2, the spreadsheet can be configured with a soft button, such as the“Create Simulation” button, to build the simulation objects and, in someembodiments, may automatically run a simulation; in other embodiments,the user may be prompted to run the simulation after the simulationobjects are built.

[0078]FIG. 9 illustrates a screen view that is reached by selecting the“Create Simulation” button. At this point, all data out of thesimulation is transferred from the input interfaces to theCBM_Transfer.XLS module, a Base.Mod is copied to the project directory,and Witness® 2000 or other simulation software is opened. The simulationis started and the line or other electronics assembly configuration isbuilt on the screen.

[0079] The process for building the simulation objects may bestreamlined by creating templates in the simulation software for thesimulation objects. Set forth below is an example of a template for asimulation object for a cluster of 3 Siemens HS-50 machines that may beused with Witness ® 2000. HS-50 Template * * * Begin Template * * *SELECT HS50Cluster310101 NAME OF MODULE: HS50Cluster310101; TITLE: ;INPUT ELEMENT: Undefined; OUTPUT ELEMENT: Undefined; FILENAME:C:\IanRawles\Projects\CBM\Monday\H50- Cluster3_L1.mdl; WALK: No;LINK_TO_FILE: No; USE CYCLE: No; CYCLE TIME: Undefined; ELEMENTPLACEMENT: −1; REPORTING: Individual; BEGIN_MODULE_DETAIL HS50 NAME OFMODULE: HS50; TITLE: ; INPUT ELEMENT: Undefined OUTPUT ELEMENT:Undefined; ACTIONS, Initialise Add !1=asynch, 2=synch HS50.SWITCHS25AS =1 HS50.SWITCHS25SINGDUAL = 2 ! !Put flags to one if maintenance stopsline, 0 if maintenance is smarter and performed by operator as !conditions allow ! 1= daily, 2-weekly, 3=long term. ! HS50.Maintainflag(1) = 1 HS50.Maintainflag (2) = 1 HS50.Maintainflag (3) = 1 ! !Configuration for single vs. dual conveyor ! !SET QUANTITY OFConveyor001 TO SWITCHS25SINGDUAL !SET QUANTITY OF Conveyor002 TOSWITCHS25SINGDUAL !SET QUANTITY OF Go TO SWITCHS25SINGDUAL !SET QUANTITYOF Cycletimes TO SWITCHS25SINGDUAL !SET QUANTITY OF Setuptimes TOSWITCHS25SINGDUAL !SET QUANTITY OF Machine001 TO SWITCHS25SINGDUAL EndActions WALK: No; LINK_TO_FILE: No; USE CYCLE: No; CYCLE TIME:Undefined; ELEMENT PLACEMENT: −1; REPORTING: Individual;BEGIN_MODULE_DETAIL Conveyor001 NAME OF CONVEYOR: Conveyor001; QUANTITY:1; TYPE: Queuing; PART LENGTH: 1; MAX CAPACITY: 1; INPUT RULE: Wait;OUTPUT RULE: Wait; CYCLE TIME: 2.0; BREAKDOWNS: No; PRIORITY: Lowest;LABOR: Repair: None; END REPORTING: Individual; SHIFT: Undefined;RESTART DELAY: Undefined; END Conveyor001 Machine001 NAME OF MACHINE:Machine001; QUANTITY: 1; TYPE: Single; PRIORITY: Lowest; LABOR: Cycle:None END DISCRETE LINKS: Fill: None END DISCRETE LINKS: Empty: None ENDCYCLE TIME: 3.0 !Setuptimes (N); INPUT RULE: PULL from Conveyor001(N) atFront; OUTPUT RULE: IF Go (N) = 1 PUSH to Conveyor002(N) at Rear ELSEWait ENDIF; Output_From: Front; REPORTING: Individual; SHIFT:Undefined,0,0; END Machine001 Conveyor002 NAME OF CONVEYOR: Conveyor002;QUANTITY: 1; TYPE: Queuing; PART LENGTH: 1; MAX CAPACITY: 1; ACTIONS,Join Add Go (N) = 0 End Actions INPUT RULE: Wait; OUTPUT RULE: Wait;CYCLE TIME: 2.0; BREAKDOWNS: No; PRIORITY: Lowest; LABOR: Repair: None;END REPORTING: Individual; SHIFT: Undefined; RESTART DELAY: Undefined;END Conveyor002 Head NAME OF MACHINE: Head; QUANTITY: 1; TYPE:General(Multi-Cycle); PRIORITY: Lowest; DISCRETE LINKS: Fill: None ENDDISCRETE LINKS: Empty: None END CYCLE_DETAIL Cycle number: 1 * Cycletime: 1.0; * Input quantity: 1; * Finish quantity: 1; * Description:Cycle number 1 ACTIONS, Finish Add IF TYPE = Dummy1 Go (1) = 1 ELSEIFTYPE = Dummy2 Go (2) = 1 ELSE STOP ENDIF IF TYPE = Dummy1 Headwhere1 =“Top Lane” ELSE Headwhere1 = “Bottom Lane” ENDIF End Actions LABOR:Cycle: None; Pre-empt level: None; END Input rule: IF ISTATE(Machine001(1)) = 3 AND Go (1) = 0 PULL from Dummy1 out of WORLD ELSEWait ENDIF; Output Rule: Wait; Output_From: Front; Output_Quantity: 0;Cycle number: 2 * Cycle time: 0.01 * Input quantity: 0; * Finishquantity: 1; * Description: Cycle2 LABOR: Cycle: None; Pre-empt level:None; END Input rule: Wait; Output Rule: IF Go (1) = 0 PUSH to SHIP ELSEWait +L,7 ENDIF; Output_From: Front; END CYCLE_DETAIL BREAKDOWN_DETAILBreakdown number: 1 * Mode: Busy time; * Down interval: Undefined; *Repair time: Undefined; * Scrap part: No; * Description: MTBF * Setup onrepair: No; * Check at cycle start only: Yes; DIALOG DISPLAY NUMBER: 0;ACTIONS, Breakdown Add ! BREAKDWN (Conveyor001(1)) BREAKDWN(Machine001(1)) BREAKDWN (Conveyor002(1)) BREAKDWN (Machine002(1))BREAKDWN (Head2) ! End Actions ACTIONS, Repair Add REPAIR(Conveyor001(1)) REPAIR (Machine001(1)) REPAIR (Conveyor002(1)) REPAIR(Machine002(1)) REPAIR (Head2) End Actions LABOR: Repair: None; ENDBreakdown number: 2 * Mode: Busy time; * Down interval: NORMAL(3600.0,500,48); * Repair time: 3.5 * 60; * Scrap part: No; *Description: MTBA * Setup on repair: No; * Check at cycle start only:Yes; DIALOG DISPLAY NUMBER: 1; ACTIONS, Breakdown Add BREAKDWN(Machine001(1)) End Actions ACTIONS, Repair Add REPAIR (Machine001(1))End Actions LABOR: Repair: None; END Breakdown number: 3 * Mode: Busytime; * Down interval: TRIANGLE (2.5 * 1440 * 60,3 * 1440 * 60,3.5 *1440 * 60,72); * Repair time: 120.0; * Scrap part: No; * Description:Nozzle ID Error * Setup on repair: No; * Check at cycle start only: Yes;DIALOG DISPLAY NUMBER: 2; LABOR: Repair: None; END END BREAKDOWN_DETAILREPORTING: Individual; SHIFT: Undefined,0,0; END Head Go NAME OFVARIABLE: Go; QUANTITY: 4; REPORTING: Yes; END Go SWITCH S25AS NAME OFVARIABLE: SWITCHS25AS; QUANTITY: 1; REPORTING: Yes; END SWITCHS25ASCycletimes NAME OF VARIABLE: Cycletimes; QUANTITY: 1; REPORTING: Yes;END Cycletimes Setuptimes NAME OF VARIABLE: Setuptimes; QUANTITY: 1;REPORTING: Yes; END Setuptimes SWITCHS25SINGDUAL NAME OF VARIABLE:SWITCHS25SINGDUAL; QUANTITY: 1; REPORTING: Yes; END SWITCHS25SINGDUALOperator NAME OF LABOR: Operator; QUANTITY no shift: 1; REPORTING:Group; END Operator Maintainflag NAME OF VARIABLE: Maintainflag;QUANTITY: 3; REPORTING: Yes; END Maintainflag Day NAME OF SHIFT: Day;TYPE OF SHIFT: main; OFFSET: Working time: 0.000000; Rest time:0.000000; ACTIONS, Start Add REPAIR (Head) End Actions ACTIONS, End AddIF Maintainflag (1) = 1 BREAKDWN (Head) ENDIF End Actions SHIFT DATA:28200.000000,600.000000,0.000000; REPORTING: Yes; END Day Weekly NAME OFSHIFT: Weekly; TYPE OF SHIFT: main; OFFSET: Working time: 0.000000; Resttime: 0.000000; ACTIONS, Start Add REPAIR (Head) End Actions ACTIONS,End Add IF Maintainflag (2) = 1 BREAKDWN (Head) ENDIF End Actions SHIFTDATA: 6002880.000000,1920.000000,0.000000; REPORTING: Yes; END WeeklyLongtermFactor NAME OF SHIFT: LongtermFactor; TYPE OF SHIFT: main;OFFSET: Working time: 0.000000; Rest time: 0.000000; ACTIONS, Start AddREPAIR (Head) End Actions ACTIONS, End Add IF Maintainflag (3) = 1BREAKDWN (Head) ENDIF End Actions SHIFT DATA:596575.000000,8225.280273,0.000000; REPORTING: Yes; END LongtermFactorMachine002 NAME OF MACHINE: Machine002; QUANTITY: 1; TYPE: Single;PRIORITY: Lowest; LABOR: Cycle: None; END DISCRETE LINKS: Fill: None ENDDISCRETE LINKS: Empty: None END CYCLE TIME: 3.0 !Setuptimes (N); INPUTRULE: PULL from Conveyor002(N) at Front; OUTPUT RULE: IF Go (N + 2) = 1PUSH to Conveyor003(N) at Rear ELSE Wait END IF; Output_From: Front;REPORTING: Individual; SHIFT: Undefined,0,0; END Machine002 Head2 NAMEOF MACHINE: Head2; QUANTITY 1; TYPE: General(Multi-Cycle); PRIORITY:Lowest; DISCRETE LINKS: Fill: None END DISCRETE LINKS: Empty: None ENDCYCLE_DETAIL Cycle number: 1 * Cycle time: 1.0; * Input quantity: 1; *Finish quantity: 1; * Description: Cycle number 1 ACTIONS, Finish Add IFTYPE = Dummy3 Go (3) = 1 ELSEIF TYPE = Dummy4 Go (4) = 1 ELSE STOP ENDIFIF TYPE = Dummy3 Headwhere2 = “Top Lane” ELSEIF TYPE = Dummy4 Headwhere2= “Bottom Lane” ENDIF End Actions LABOR: Cycle: None; Pre-empt level:None; END Input rule: IF ISTATE (Machine002(1)) = 3 AND Go (3) = 0 PULLfrom Dummy3 out of WORLD ELSE Wait ENDIF; Output Rule: PUSH to SHIP;Output_From: Front; Output_Quantity: 0; Cycle number: 2 * Cycle time:0.01; * Input quantity: 0; * Finish quantity: 1; * Description: Cycle2LABOR: Cycle: None; Pre-empt level: None; END Input rule: Wait; OutputRule: IF Go (3) = 0 OR Go (4) = 0 PUSH to SHIP ELSE Wait ENDIF;Output_From: Front; END CYCLE_DETAIL BREAKDOWN_DETAIL Breakdown number:1 * Mode: Busy time; * Down interval: Undefined; * Repair time:Undefined; * Scrap part: No; * Description: MTBF * Setup on repair:No; * Check at cycle start only: Yes; DIALOG DISPLAY NUMBER: 0; ACTIONS,Breakdown Add BREAKDWN (Conveyor001(1)) BREAKDWN (Machine001(1))BREAKDWN (Conveyor002(1)) BREAKDWN (Machine002(1)) BREAKDWN (Head) EndActions ACTIONS, Repair Add REPAIR (Conveyor001(1)) REPAIR(Machine001(1)) REPAIR (Conveyor002(1)) REPAIR (Machine002(1)) REPAIR(Head) End Actions LABOR: Repair: None; END Breakdown number: 2 * Mode:Busy time; * Down interval: NORMAL (3600.0,500,48); * Repair time: 3.5 *60; * Scrap part: No; * Description: MTBA * Setup on repair: No; * Checkat cycle start only: Yes; DIALOG DISPLAY NUMBER: 1; ACTIONS, BreakdownAdd BREAKDWN (Machine002(1)) End Actions ACTIONS, Repair Add REPAIR(Machine002(1)) End Actions LABOR: Repair: None; END Breakdown number:3 * Mode: Busy time; * Down interval: TRIANGLE (2.5 * 1440 * 60,3 *1440 * 60,3.5 * 1440 * 60,72); * Repair time: 120.0; * Scrap part: No; *Description: Nozzle ID Error * Setup on repair: No; * Check at cyclestart only: Yes; DIALOG DISPLAY NUMBER: 2; LABOR: Repair: None; END ENDBREAKDOWN_DETAIL REPORTING: Individual; SHIFT: Undefined,0,0; END Head2Conveyor003 NAME OF CONVEYOR: Conveyor003; QUANTITY: 1; TYPE: Queuing;PART LENGTH: 1; MAX CAPACITY: 1; INPUT RULE: Wait; OUTPUT RULE: WaitCYCLE TIME: 2.0; BREAKDOWNS: No; PRIORITY: Lowest; LABOR: Repair: None;END REPORTING: Individual; SHIFT: Undefined; RESTART DELAY: Undefined;END Conveyor003 Dummy1 NAME OF PART: Dummy1; TYPE: Variable attributes;GROUP NUMBER: 1 MAXIMUM ARRIVALS: 0; OUTPUT RULE: Wait PART ROUTE: NoneREPORTING: Yes; CONTAINS FLUIDS: No; SHIFT: Undefined; ARRIVAL_PROFILE:No; END Dummy1 Dummy2 NAME OF PART: Dummy2; TYPE: Variable attributes;GROUP NUMBER: 1; MAXIMUM ARRIVALS: 0; OUTPUT RULE: Wait; PART ROUTE:None REPORTING: Yes; CONTAINS FLUIDS: No; SHIFT: Undefined;ARRIVAL_PROFILE: No; END Dummy2 Dummy3 NAME OF PART: Dummy3; TYPE:Variable attributes; GROUP NUMBER: 1 MAXIMUM ARRIVALS: 0; OUTPUT RULE:Wait; PART ROUTE: None REPORTING: Yes; CONTAINS FLUIDS: No; SHIFT:Undefined; ARRIVAL_PROFILE: No; END Dummy3 Dummy4 NAME OF PART: Dummy4;TYPE: Variable attributes; GROUP NUMBER: 1; MAXIMUM ARRIVALS: 0; OUTPUTRULE: Wait; PART ROUTE: None REPORTING: Yes; CONTAINS FLUIDS: No; SHIFT:Undefined; ARRIVAL_PROFILE: No; END Dummy4 Headwhere1 NAME OF VARIABLE:Headwhere1; QUANTITY: 1; REPORTING: Yes; END Headwhere1 Headwhere2 NAMEOF VARIABLE: Headwhere2; QUANTITY: 1; REPORTING: Yes; END Headwhere2Pie001 NAME OF PIE_CHART: Pie001; QUANTITY: 1; STATE_VALUES: * Name:Head; * Type: standard; * Report by: on_shift_time; * Values: group;REFRESH INTERVAL: 3600; REPORTING: Individual; PULL_OUT_SEGMENT: 0;SHIFT: Undefined; END Pie001 Pie002 NAME OF PIE_CHART: Pie002; QUANTITY:1; STATE_VALUES: * Name: Head2; * Type: standard; * Report by:on_shift_time; * Values: group; REFRESH INTERVAL: 3600; REPORTING:Individual; PULL_OUT_SEGMENT: 0; SHIFT: Undefined; END Pie002END_MODULE_DETAIL END HS50 HS51 NAME OF MODULE: HS51; TITLE:; INPUTELEMENT: Undefined OUTPUT ELEMENT: Undefined; ACTIONS, Initialise Add!1=asynch, 2=synch HS51.SWITCHS25AS = 1 HS51.SWITCHS25SINGDUAL = 2 !Putflags to one if maintenance stops line, 0 if maintenance is smarter andperformed by operator as ! conditions allow ! 1 = daily, 2-weekly,3=long term. ! HS51.Maintainflag (1) = 1 HS51.Maintainfiag (2) = 1HS51.Maintainflag (3) = 1 ! !Configuration for single vs. dual conveyor! !SET QUANTITY OF Conveyor001 TO SWITCHS25SINGDUAL !SET QUANTITY OFConveyor002 TO SWITCHS25SINGDUAL !SET QUANTITY OF Go TOSWITCHS25SINGDUAL !SET QUANTITY OF Cycletimes TO SWITCHS25SINGDUAL !SETQUANTITY OF Setuptimes TO SWITCHS25SINGDUAL !SET QUANTITY OF Machine001TO SWITCHS25SINGDUAL End Actions WALK: No; LINK_TO_FILE: No USE CYCLE:No; CYCLE TIME: Undefined; ELEMENT PLACEMENT: −1; REPORTING: Individual;BEGIN_MODULE_DETAIL Conveyor001 NAME OF CONVEYOR: Conveyor001; QUANTITY:1; TYPE: Queuing; PART LENGTH: 1; MAX CAPACITY: 1; INPUT RULE: Wait;OUTPUT RULE: Wait; CYCLE TIME: 2.0; BREAKDOWNS: No; PRIORITY: Lowest;LABOR: Repair: None; END REPORTING: Individual; SHIFT: Undefined;RESTART DELAY: Undefined; END Conveyor001 Machine001 NAME OF MACHINE:Machine001; QUANTITY: 1; TYPE: Single; PRIORITY: Lowest; LABOR: Cycle:None; END DISCRETE LINKS: Fill: None END DISCRETE LINKS: Empty: None ENDCYCLE TIME: 3.0 !Setuptimes (N); INPUT RULE: PULL from Conveyor001(N) atFront; OUTPUT RULE: IF Go (N) = 1 PUSH to Conveyor002(N) at Rear ELSEWait ENDIF; Output_From: Front; REPORTING: Individual; SHIFT:Undefined,0,0; END Machine001 Conveyor002 NAME OF CONVEYOR: Conveyor002;QUANTITY: 1; TYPE: Queuing; PART LENGTH: 1; MAX CAPACITY: 1; ACTIONS,Join Add Go (N) = 0 End Actions INPUT RULE: Wait; OUTPUT RULE: Wait;CYCLE TIME: 2.0; BREAKDOWNS: No; PRIORITY: Lowest; LABOR: Repair: None;END REPORTING: Individual; SHIFT: Undefined; RESTART DELAY: Undefined;END Conveyor002 Head NAME OF MACHINE: Head; QUANTITY: 1; TYPE:General(Multi-Cycle); PRIORITY: Lowest; DISCRETE LINKS: Fill: None ENDDISCRETE LINKS: Empty: None END CYCLE_DETAIL Cycle number: 1 * Cycletime: 1.0; * Input quantity: 1; * Finish quantity: 1; * Description:Cycle number 1 ACTIONS, Finish Add IF TYPE = Dummy1 Go (1) = 1 ELSEIFTYPE = Dummy2 Go (2) = 1 ELSE STOP ENDIF IF TYPE = Dummy1 Headwhere1 =“Top Lane” ELSE Headwhere1 = “Bottom Lane” ENDIF End Actions LABOR:Cycle: None; Pre-empt level: None; END Input rule: IF ISTATE(Machine001(1)) = 3 AND Go (1) = 0 PULL from Dummy1 out of WORLD ELSEWait ENDIF; Output Rule: Wait; Output_From: Front; Output_Quantity: 0;Cycle number: 2 * Cycle time: 0.01 * Input quantity: 0; * Finishquantity: 1; * Description: Cycle2 LABOR: Cycle: None; Pre-empt level:None; END Input rule: Wait; Output Rule: IF Go (1) = 0 PUSH to SHIP ELSEWait ENDIF; Output_From: Front; END CYCLE_DETAIL BREAKDOWN_DETAILBreakdown number: 1 * Mode: Busy time; * Down interval: Undefined; *Repair time: Undefined; * Scrap part: No; * Description: MTBF * Setup onrepair: No; * Check at cycle start only: Yes; DIALOG DISPLAY NUMBER: 0;ACTIONS, Breakdown Add ! BREAKDWN (Conveyor001(1)) BREAKDWN(Machine001(1)) BREAKDWN (Conveyor002(1)) BREAKDWN (Machine002(1))BREAKDWN (Head2) ! ! End Actions ACTIONS, Repair Add REPAIR(Conveyor001(1)) REPAIR (Machine001(1)) REPAIR (Conveyor002(1)) REPAIR(Machine002(1)) REPAIR (Head2) End Actions LABOR: Repair: None; ENDBreakdown number: 2 * Mode: Busy time; * Down interval: NORMAL(3600.0,500,48); * Repair time: 3.5 * 60; * Scrap part: No; *Description: MTBA * Setup on repair: No; * Check at cycle start only:Yes; DIALOG DISPLAY NUMBER: 1; ACTIONS, Breakdown Add BREAKDWN(Machine001(1)) End Actions ACTIONS, Repair Add REPAIR (Machine001(1))End Actions LABOR: Repair: None; END Breakdown number: 3 * Mode: Busytime; * Down interval: TRIANGLE (2.5 * 1440 * 60,3 * 1440 * 60,3.5 *1400 * 60,72); * Repair time: 120.0; * Scrap part: No; * Description:Nozzle ID Error * Setup on repair: No; * Check at cycle start only: Yes;DIALOG DISPLAY NUMBER: 2; LABOR: Repair: None; END END BREAKDOWN_DETAILREPORTING: Individual; SHIFT: Undefined,0,0; END Head Go NAME OFVARIABLE: Go; QUANTITY: 4; REPORTING: Yes; END Go SWITCHS25AS NAME OFVARIABLE: SWITCHS25AS; QUANTITY: 1; REPORTING: Yes; END SWITCHS25ASCycletimes NAME OF VARIABLE: Cycletimes; QUANTITY: 1; REPORTING: Yes;END Cycletimes Setuptimes NAME OF VARIABLE: Setuptimes; QUANTITY: 1;REPORTING: Yes; END Setuptimes SWITCHS25SINGDUAL NAME OF VARIABLE:SWITCHS25SINGDUAL; QUANTITY: 1; REPORTING: Yes; END SWITCHS25SINGDUALOperator NAME OF LABOR: Operator; QUANTITY no shift: 1; REPORTING:Group; END Operator Maintainflag NAME OF VARIABLE: Maintainflag;QUANTITY: 3; REPORTING: Yes; END Maintainflag Day NAME OF SHIFT: Day;TYPE OF SHIFT: main; OFFSET: Working time: 0.000000; Rest time:0.000000; ACTIONS, Start Add REPAIR (Head) End Actions ACTIONS, End AddIF Maintainflag (1) = 1 BREAKDWN (Head) ENDIF End Actions SHIFT DATA:28200.000000,600.000000,0.000000; REPORTING: Yes; END Day Weekly NAME OFSHIFT: Weekly; TYPE OF SHIFT: main; OFFSET: Working time: 0.000000; Resttime: 0.000000; ACTIONS, Start Add REPAIR (Head) End Actions ACTIONS,End Add IF Maintainflag (2) = 1 BREAKDWN (Head) ENDIF End Actions SHIFTDATA: 6002880.000000,1920.000000,0.000000; REPORTING: Yes; END WeeklyLongtermFactor NAME OF SHIFT: LongtermFactor; TYPE OF SHIFT: main;OFFSET: Working time: 0.000000; Rest time: 0.000000; ACTIONS, Start AddREPAIR (Head) End Actions ACTIONS, End Add IF Maintainflag (3) = 1BREAKDWN (Head) ENDIF End Actions SHIFT DATA:596575.000000,8225.280273,0.000000; REPORTING: Yes; END LongtermFactorMachine002 NAME OF MACHINE: Machine002; QUANTITY: 1; TYPE: Single;PRIORITY: Lowest LABOR: Cycle: None; END DISCRETE LINKS: Fill: None ENDDISCRETE LINKS: Empty: None END CYCLE TIME: 3.0 !Setuptimes (N); INPUTRULE: PULL from Conveyor002(N) at Front; OUTPUT RULE: IF Go (N + 2) = 1PUSH to Conveyor003(N) at Rear ELSE Wait ENDIF; Output_From: Front;REPORTING: Individual; SHIFT: Undefined,0,0; END Machine002 Head2 NAMEOF MACHINE: Head2; QUANTITY: 1; TYPE: General(Multi-Cycle); PRIORITY:Lowest; DISCRETE LINKS: Fill: None END DISCRETE LINKS: Empty: None ENDCYCLE_DETAIL Cycle number: 1 * Cycle time: 1.0; * Input quantity: 1; *Finish quantity: 1; * Description: Cycle number 1 ACTIONS, Finish Add IFTYPE = Dummy3 Go (3) = 1 ELSEIF TYPE = Dummy4 Go (4) = 1 ELSE STOP ENDIFIF TYPE = Dummy3 Headwhere2 = “Top Lane” ELSEIF TYPE = Dummy4 Headwhere2= “Bottom Lane” ENDIF End Actions LABOR: Cycle: None; Pre-empt level:None; END Input rule: IF ISTATE (Machine002(1)) = 3 AND Go (3) = 0 PULLfrom Dummy3 out of WORLD ELSE Wait ENDIF; Output Rule: PUSH to SHIP;Output_From: Front; Output_Quantity: 0; Cycle number: 2 * Cycle time:0.01 * Input quantity: 0; * Finish quantity: 1; * Description: Cycle2LABOR: Cycle: None; Pre-empt level: None; END Input rule: Wait; OutputRule: IF Go (3) = 0 PUSH to SHIP ELSE Wait ENDIF; Output_From: Front;END CYCLE_DETAIL BREAKDOWN_DETAIL Breakdown number: 1 * Mode: Busytime; * Down interval: Undefined * Repair time: Undefined; * Scrap part:No; * Description: MTBF * Setup on repair: No; * Check at cycle startonly: Yes; DIALOG DISPLAY NUMBER: 0; ACTIONS, Breakdown Add BREAKDWN(Conveyor001(1)) BREAKDWN (Machine001(1)) BREAKDWN (Conveyor002(1))BREAKDWN (Machine002(1)) BREAKDWN (Head) End Actions ACTIONS, Repair AddREPAIR (Conveyor001(1)) REPAIR (Machine001(1)) REPAIR (Conveyor002(1))REPAIR (Machine002(1)) REPAIR (Head) End Actions LABOR: Repair: None;END Breakdown number: 2 * Mode: Busy time; * Down interval: NORMAL(3600.0,500,48); * Repair time: 3.5 * 60; * Scrap part: No; *Description: MTBA * Setup on repair: No; * Check at cycle start only:Yes; DIALOG DISPLAY NUMBER: 1; ACTIONS, Breakdown Add BREAKDWN(Machine002(1)) End Actions ACTIONS, Repair Add REPAIR (Machine002(1))End Actions LABOR: Repair: None; END Breakdown number: 3 * Mode: Busytime; * Down interval: TRIANGLE (2.5 * 1440 * 60,3 * 1440 * 60,3.5 *1400 * 60,72); * Repair time: 120.0; * Scrap part: No; * Description:Nozzle ID Error * Setup on repair: No; * Check at cycle start only: Yes;DIALOG DISPLAY NUMBER: 2; LABOR: Repair: None; END END BREAKDOWN_DETAILREPORTING: Individual; SHIFT: Undefined,0,0; END Head2 Conveyor003 NAMEOF CONVEYOR: Conveyor003; QUANTITY: 1; TYPE: Queuing; PART LENGTH: 1;MAX CAPACITY: 1; INPUT RULE: Wait; OUTPUT RULE: Wait; CYCLE TIME: 2.0;BREAKDOWNS: No; PRIORITY: Lowest; LABOR: Repair: None; END REPORTING:Individual; SHIFT: Undefined; RESTART DELAY: Undefined; END Conveyor003Dummy1 NAME OF PART: Dummy1; TYPE: Variable attributes; GROUP NUMBER: 1;MAXIMUM ARRIVALS: 0; OUTPUT RULE: Wait PART ROUTE: None REPORTING: Yes;CONTAINS FLUIDS: No; SHIFT: Undefined; ARRIVAL_PROFILE: No: END Dummy1Dummy2 NAME OF PART: Dummy2; TYPE: Variable attributes; GROUP NUMBER: 1;MAXIMUM ARRIVALS: 0; OUTPUT RULE: Wait PART ROUTE: None REPORTING: Yes;CONTAINS FLUIDS: No; SHIFT: Undefined; ARRIVAL_PROFILE: No; END Dummy2Dummy3 NAME OF PART: Dummy3; TYPE: Variable attributes; GROUP NUMBER: 1;MAXIMUM ARRIVALS: 0; OUTPUT RULE: Wait; PART ROUTE: None REPORTING: Yes;CONTAINS FLUIDS: No; SHIFT: Undefined; ARRIVAL_PROFILE: No; END Dummy3Dummy4 NAME OF PART: Dummy4; TYPE: Variable attributes; GROUP NUMBER: 1;MAXIMUM ARRIVALS: 0; OUTPUT RULE: Wait; PART ROUTE: None REPORTING: Yes;CONTAINS FLUIDS: No; SHIFT: Undefined; ARRIVAL_PROFILE: No; END Dummy4Headwhere1 NAME OF VARIABLE: Headwhere1; QUANTITY: 1; REPORTING: Yes;END Headwhere1 Headwhere2 NAME OF VARIABLE: Headwhere2; QUANTITY: 1;REPORTING: Yes; END Headwhere2 Pie001 NAME OF PIE_CHART: Pie001;QUANTITY: 1; STATE_VALUES: * Name: Head; * Type: standard; * Report by:on_shift_time * Values: group; REFRESH INTERVAL: 3600; REPORTING:Individual; PULL_OUT_SEGMENT: 0; SHIFT: Undefined; END Pie001 Pie002NAME OF PIE_CHART: Pie002; QUANTITY: 1; STATE_VALUES: * Name: Head2; *Type: standard; * Report by: on_shift_time; * Values: group; REFRESHINTERVAL: 3600 REPORTING: Individual; PULL_OUT_SEGMENT: 0 SHIFT:Undefined; END Pie002 END_MODULE_DETAIL END HS51 HS52 NAME OF MODULE:HS52; TITLE:; INPUT ELEMENT: Undefined; OUTPUT ELEMENT: Undefined;ACTIONS, Initialise Add !1= asynch, 2=synch HS52.SWITCHS25AS = 1HS52.SWITCHS25SINGDUAL = 2 ! !Put flags to one if maintenance stopsline, 0 if maintenance is smarter and performed by operator as !conditions allow ! 1= daily, 2-weekly, 3=long term. ! HS52.Maintainflag(1) = 1 HS52.Maintainflag (2) = 1 H552.Maintainflag (3) = 1 ! !Configuration for single vs. dual conveyor ! !SET QUANTITY OFConveyor001 TO SWITCHS25SINGDUAL !SET QUANTITY OF Conveyor002 TOSWITCHS25SINGDUAL !SET QUANTITY OF Go TO SWITCHS25SINGDUAL !SET QUANTITYOF Cycletimes TO SWITCHS25SINGDUAL !SET QUANTITY OF Setuptimes TOSWITCHS25SINGDUAL !SET QUANTITY OF Machine001 TO SWITCHS25SINGDUAL EndActions WALK: No; LINK_TO_FILE: No USE CYCLE: No; CYCLE TIME: Undefined;ELEMENT PLACEMENT: −1; REPORTING: Individual; BEGIN_MODULE_DETAILConveyor001 NAME OF CONVEYOR: Conveyor001; QUANTITY: 1; TYPE: Queuing;PART LENGTH: 1; MAX CAPACITY: 1; INPUT RULE: Wait; OUTPUT RULE: Wait;CYCLE TIME: 2.0; BREAKDOWNS: No; PRIORITY: Lowest; LABOR: Repair: None;END REPORTING: Individual; SHIFT: Undefined; RESTART DELAY: Undefined;END Conveyor001 Machine001 NAME OF MACHINE: Machine001; QUANTITY: 1;TYPE: Single; PRIORITY: Lowest; LABOR: Cycle: None; END DISCRETE LINKS:Fill: None END DISCRETE LINKS: Empty: None END CYCLE TIME: 3.0!Setuptimes (N); INPUT RULE: PULL from Conveyor001 (N) at Front; OUTPUTRULE: IF Go (N) = 1 PUSH to Conveyor002(N) at Rear ELSE Wait ENDIF;Output_From: Front; REPORTING: Individual; SHIFT: Undefined,0,0; ENDMachine001 Conveyor002 NAME OF CONVEYOR: Conveyor002; QUANTITY: 1; TYPE:Queuing; PART LENGTH: 1; MAX CAPACITY: 1; ACTIONS, Join Add Go (N) = 0End Actions INPUT RULE: !IF ISTATE (Machine001(1)) = 3 !PULL from Dummy1out of WORLD !ELSEIF ISTATE (Machine001(2)) = 3 !PULL from Dummy2 out ofWORLD !ELSE !Wait !ENDIF Wait; OUTPUT RULE: Wait; CYCLE TIME: 2.0;BREAKDOWNS: No; PRIORITY: Lowest; LABOR: Repair: None; END REPORTING:Individual; SHIFT: Undefined; RESTART DELAY: Undefined; END Conveyor002Head NAME OF MACHINE: Head; QUANTITY: 1; TYPE: General(Multi-Cycle);PRIORITY: Lowest; DISCRETE LINKS: Fill: None END DISCRETE LINKS: Empty:None END CYCLE_DETAIL Cycle number: 1 * Cycle time: 1.0; * Inputquantity: 1; * Finish quantity: 1; * Description: Cycle number 1ACTIONS, Finish Add IF TYPE = Dummy1 Go (1) = 1 ELSEIF TYPE = Dummy2 Go(2) = 1 ELSE STOP ENDIF IF TYPE = Dummy1 Headwhere1 = “Top Lane” ELSEHeadwhere1 = “Bottom Lane” ENDIF End Actions LABOR: Cycle: None;Pre-empt level: None; END Input rule: IF ISTATE (Machine001(1)) = 3 ANDGo (1) = 0 PULL from Dummy1 out of WORLD ELSE Wait ENDIF; Output Rule:Wait; Output_From: Front; Output_Quantity: 0; Cycle number: 2 * Cycletime: 0.01 * Input quantity: 0; * Finish quantity: 1; * Description:Cycle2 LABOR: Cycle: None; Pre-empt level: None; END Input rule: Wait;Output Rule: IF Go (1) = 0 PUSH to SHIP ELSE Wait ENDIF; Output_From:Front; END CYCLE_DETAIL BREAKDOWN_DETAIL Breakdown number: 1 * Mode:Busy time; * Down interval: Undefined; * Repair time: Undefined; * Scrappart: No; * Description: MTBF * Setup on repair: No; * Check at cyclestart only: Yes; DIALOG DISPLAY NUMBER: 0; ACTIONS, Breakdown Add !BREAKDWN (Conveyor001(1)) BREAKDWN (Machine001(1)) BREAKDWN(Conveyor002(1)) BREAKDWN (Machine002(1)) BREAKDWN (Head2) ! ! EndActions ACTIONS, Repair Add REPAIR (Conveyor001(1)) REPAIR(Machine001(1)) REPAIR (Conveyor002(1)) REPAIR (Machine002(1)) REPAIR(Head2) End Actions LABOR: Repair: None; END Breakdown number: 2 * Mode:Busy time; * Down interval: NORMAL (3600.0,500,48); * Repair time: 3.5 *60; * Scrap part: No; * Description: MTBA * Setup on repair: No; * Checkat cycle start only: Yes; DIALOG DISPLAY NUMBER: 1; ACTIONS, BreakdownAdd BREAKDWN (Machine001(1)) End Actions ACTIONS, Repair Add REPAIR(Machine001(1)) End Actions LABOR: Repair: None; END Breakdown number:3 * Mode: Busy time; * Down interval: TRIANGLE (2.5 * 1440 * 60,3 *1440 * 60,3.5 * 1400 * 60,72); * Repair time: 120.0; * Scrap part: No; *Description: Nozzle ID Error * Setup on repair: No; * Check at cyclestart only: Yes; DIALOG DISPLAY NUMBER: 2; LABOR: Repair: None; END ENDBREAKDOWN_DETAIL REPORTING: Individual; SHIFT: Undefined,0,0; END HeadGo NAME OF VARIABLE: Go; QUANTITY: 4; REPORTING: Yes; END Go SWITCHS25ASNAME OF VARIABLE: SWITCHS25AS QUANTITY: 1; REPORTING: Yes; ENDSWITCHS25AS Cycletimes NAME OF VARIABLE: Cycletimes; QUANTITY: 1;REPORTING: Yes; END Cycletimes Setuptimes NAME OF VARIABLE: Setuptimes;QUANTITY: 1; REPORTING: Yes; END Setuptimes SWITCHS25SINGDUAL NAME OFVARIABLE: SWITCHS25SINGDUAL; QUANTITY: 1; REPORTING: Yes; ENDSWITCHS25SINGDUAL Operator NAME OF LABOR: Operator; QUANTITY no shift:1; REPORTING: Group; END Operator Maintainflag NAME OF VARIABLE:Maintainflag; QUANTITY: 3; REPORTING: Yes; END Maintainflag Day NAME OFSHIFT: Day; TYPE OF SHIFT: main; OFFSET: Working time: 0.000000; Resttime: 0.000000; ACTIONS, Start Add REPAIR (Head) End Actions ACTIONS,End Add IF Maintainflag (1) = 1 BREAKDWN (Head) ENDIF End Actions SHIFTDATA: 28200.000000,600.000000,0.000000; REPORTING: Yes; END Day WeeklyNAME OF SHIFT: Weekly; TYPE OF SHIFT: main; OFFSET: Working time:0.000000; Rest time: 0.000000; ACTIONS, Start Add REPAIR (Head) EndActions ACTIONS, End Add IF Maintainflag (2) = 1 BREAKDWN (Head) ENDIFEnd Actions SHIFT DATA: 6002880.000000,1920.000000,0.000000; REPORTING:Yes; END Weekly LongtermFactor NAME OF SHIFT: LongtermFactor; TYPE OFSHIFT: main; OFFSET: Working time: 0.000000; Rest time: 0.000000;ACTIONS, Start Add REPAIR (Head) End Actions ACTIONS, End Add IFMaintainflag (3) = 1 BREAKDWN (Head) ENDIF End Actions SHIFT DATA:596575.000000,8225.280273,0.000000; REPORTING: Yes; END Longterm FactorMachine002 NAME OF MACHINE: Machine002; QUANTITY: 1; TYPE: Single;PRIORITY: Lowest; LABOR: Cycle: None; END DISCRETE LINKS: Fill: None ENDDISCRETE LINKS: Empty: None END CYCLE TIME: 3.0 !Setuptimes (N); INPUTRULE: PULL from Conveyor002(N) at Front; OUTPUT RULE: IF Go (N + 2) = 1PUSH to Conveyor003(N) at Rear ELSE Wait ENDIF; Output_From: Front;REPORTING: Individual; SHIFT: Undefined,0,0; END Machine002 Head2 NAMEOF MACHINE: Head2; QUANTITY: 1; TYPE: General(Multi-Cycle); PRIORITY:Lowest; DISCRETE LINKS: Fill: None END DISCRETE LINKS: Empty: None ENDCYCLE_DETAIL Cycle number: 1 * Cycle time: 1.0; * Input quantity: 1; *Finish quantity: 1; * Description: Cycle number 1 ACTIONS, Finish Add IFTYPE = Dummy3 Go (3) = 1 ELSEIF TYPE = Dummy4 Go (4) = 1 ELSE STOP ENDIFIF TYPE = Dummy3 Headwhere2 = “Top Lane” ELSEIF TYPE = Dummy4 Headwhere2= “Bottom Lane” ENDIF End Actions LABOR: Cycle: None; Pre-empt level:None; END Input rule: IF ISTATE (Machine002(1)) = 3 AND Go (3) = 0 PULLfrom Dummy3 out of WORLD ELSE Wait ENDIF; Output Rule: PUSH to SHIP;Output_From: Front; Output_Quantity: 0; Cycle number: 2 * Cycle time:0.01; * Input quantity: 0; * Finish quantity: 1; * Description: Cycle2LABOR: Cycle: None; Pre-empt level: None; END Input rule: Wait; OutputRule: IF Go (3) = 0 PUSH to SHIP ELSE Wait ENDIF; Output_From: Front;END CYCLE_DETAIL BREAKDOWN_DETAIL Breakdown number: 1 * Mode: Busytime; * Down interval: Undefined; * Repair time: Undefined; * Scrappart: No; * Description: MTBF * Setup on repair: No; * Check at cyclestart only: Yes; DIALOG DISPLAY NUMBER: 0; ACTIONS, Breakdown AddBREAKDWN (Conveyor001(1)) BREAKDWN (Machine001(1)) BREAKDWN(Conveyor002(1)) BREAKDWN (Machine002(1)) BREAKDWN (Head) End ActionsACTIONS, Repair Add REPAIR (Conveyor001(1)) REPAIR (Machine001(1))REPAIR (Conveyor002(1)) REPAIR (Machine002(1)) REPAIR (Head) End ActionsLABOR: Repair: None; END Breakdown number: 2 * Mode: Busy time; * Downinterval: NORMAL (3600.0,500,48); * Repair time: 3.5 * 60; * Scrap part:No; * Description: MTBA * Setup on repair: No; * Check at cycle startonly: Yes; DIALOG DISPLAY NUMBER: 1; ACTIONS, Breakdown Add BREAKDWN(Machine002(1)) End Actions ACTIONS, Repair Add REPAIR (Machine002(1))End Actions LABOR: Repair: None; END Breakdown number: 3 * Mode: Busytime; * Down interval: TRIANGLE (2.5 * 1440 * 60,3 * 1440 * 60,3.5 *1400 * 60,72); * Repair time: 120.0; * Scrap part: No; * Description:Nozzle ID Error * Setup on repair: No; * Check at cycle start only: Yes;DIALOG DISPLAY NUMBER: 2; LABOR: Repair: None; END END BREAKDOWN_DETAILREPORTING: Individual; SHIFT: Undefined,0,0; END Head2 Conveyor003 NAMEOF CONVEYOR: Conveyor003; QUANTITY: 1; TYPE: Queuing; PART LENGTH: 1;MAX CAPACITY: 1; ACTIONS, Front Add STAGE = STAGE + 1 End Actions INPUTRULE: Wait; OUTPUT RULE: Wait; CYCLE TIME: 2.0; BREAKDOWNS: No;PRIORITY: Lowest LABOR: Repair: None; END REPORTING: Individual; SHIFT:Undefined; RESTART DELAY: Undefined; END Conveyor003 Dummy1 NAME OFPART: Dummy1; TYPE: Variable attributes; GROUP NUMBER: 1; MAXIMUMARRIVALS: 0; OUTPUT RULE: Wait; PART ROUTE: None REPORTING: Yes;CONTAINS FLUIDS: No; SHIFT: Undefined; ARRIVAL_PROFILE: No; END Dummy1Dummy2 NAME OF PART: Dummy2; TYPE: Variable attributes; GROUP NUMBER: 1;MAXIMUM ARRIVALS: 0; OUTPUT RULE: Wait; PART ROUTE: None REPORTING: Yes;CONTAINS FLUIDS: No; SHIFT: Undefined; ARRIVAL_PROFILE: No; END Dummy2Dummy3 NAME OF PART: Dummy3; TYPE: Variable attributes; GROUP NUMBER: 1;MAXIMUM ARRIVALS: 0; OUTPUT RULE: Wait; PART ROUTE: None REPORTING: Yes;CONTAINS FLUIDS: No; SHIFT: Undefined; ARRIVAL_PROFILE: No; END Dummy3Dummy4 NAME OF PART: Dummy4; TYPE: Variable attributes; GROUP NUMBER: 1;MAXIMUM ARRIVALS: 0; OUTPUT RULE: Wait; PART ROUTE: None REPORTING: Yes;CONTAINS FLUIDS: No; SHIFT: Undefined; ARRIVAL_PROFILE: No; END Dummy4Headwhere1 NAME OF VARIABLE: Headwhere1; QUANTITY: 1; REPORTING: Yes;END Headwhere1 Headwhere2 NAME OF VARIABLE: Headwhere2; QUANTITY: 1;REPORTING: Yes; END Headwhere2 Pie001 NAME OF PIE_CHART: Pie001;QUANTITY: 1; STATE_VALUES: * Name: Head; * Type: standard; * Report by:on_shift_time; * Values: group; REFRESH INTERVAL: 3600; REPORTING:Individual; PULL_OUT_SEGMENT: 0; SHIFT: Undefined; END Pie001 Pie002NAME OF PIE_CHART: Pie002; QUANTITY: 1; STATE_VALUES: * Name: Head2; *Type: standard; * Report by: on_shift_time; * Values: group; REFRESHINTERVAL: 3600; REPORTING: Individual; PULL_OUT_SEGMENT: 0; SHIFT:Undefined; END Pie002 END_MODULE_DETAIL END HS52 Lift1 NAME OF MACHINE:Lift1; QUANTITY: 1; TYPE: Single; PRIORITY: Lowest; LABOR: Cycle: NoneEND DISCRETE LINKS: Fill: None END DISCRETE LINKS: Empty: None END CYCLETIME: Lifttime; INPUT RULE: Wait; OUTPUT RULE: Wait; Output_From: Front;REPORTING: Individual; SHIFT: Undefined,0,0; END Lift1 Lift2 NAME OFMACHINE: Lift2; QUANTITY: 1; TYPE: Single; PRIORITY: Lowest; LABOR:Cycle: None END DISCRETE LINKS: Fill: None END DISCRETE LINKS: Empty:None END CYCLE TIME: Lifttime; INPUT RULE: ! Top to bottom done IFNPARTS (HS50.Conveyor003) > 0 AND NPARTS (Underconvl(9)) = 0 PULL fromHS50.Conveyor003 at Front ! !! Bottom not done to next machine or nextnot done conveyor (not) ! ELSEIF NPARTS (Underconvl(2)) > 0 AND (NPARTS(HS51.Conveyor001) = 0 OR NPARTS (Underconvl(3)) = 0) PULL fromUnderconvl(2) at Front ELSE Wait ENDIF; OUTPUT RULE: Wait; Output_From:Front; REPORTING: Individual; SHIFT: Undefined,0,0; END Lift2 Lift3 NAMEOF MACHINE: Lift3; QUANTITY: 1; TYPE: Single; PRIORITY: Lowest; LABOR:Cycle: None END DISCRETE LINKS: Fill: None END DISCRETE LINKS: Empty:None END CYCLE TIME: Lifttime; INPUT RULE: ! Top to bottom done IFNPARTS (HS51.Conveyor003) > 0 AND NPARTS (Underconvl(11)) = 0 PULL fromHS51.Conveyor003 at Front ! !! Bottom not done to next machine or nextnot done conveyor (not) ! ELSEIF NPARTS (Underconvl(4)) > 0 AND NPARTS(HS52.Conveyor000) = 0 !or nparts(underconvl(3))) PULL fromUnderconvl(4) at Front ELSEIF NPARTS (Underconvl(10)) > 0 AND NPARTS(Underconvl(11)) = 0 PULL from Underconvl(10) at Front ELSE Wait ENDIF;OUTPUT RULE: Wait; Output_From: Front; REPORTING: Individual; SHIFT:Undefined,0,0; END Lift3 Underconvl NAME OF CONVEYOR: Underconvl;QUANTITY: 12; TYPE: Queuing; PART LENGTH: 1; MAX CAPACITY: 1; INPUTRULE: Wait; OUTPUT RULE: Wait; CYCLE TIME: 1.0; BREAKDOWNS: No; PRIORITYLowest; LABOR: Repair: None; END REPORTING: Individual; SHIFT:Undefined; RESTART DELAY: Undefined; END Underconvl Lifttime NAME OFVARIABLE: Lifttime; QUANTITY: 1 REPORTING: Yes; END LifttimeEND_MODULE_DETAIL END HS50Cluster310101 END SELECT END DETAIL* * * ENDTEMPLATE * * *

[0080] The templates according to the present invention may containcertain values for the parameters for each piece of equipment or processstep that are inherent and cannot be readily varied. For example, theconveyor speed, machine routing logic, and station to station time of apick and place machine is often fixed. Some of these values may beproprietary. One advantage of burying the proprietary values in thetemplate is that the contents of the template is usually not readilyaccessible to the user.

[0081] The template may also contain place holders for values for otherparameters that may vary. These values correspond to the parameters anddata in the populated spreadsheet. For example, FIG. 7A, at Row 40,depicts certain parameters for a cluster of two Siemens® HS 50, such asMean Time Between Failure, etc. The Simulation object template for theHS 50 cluster has corresponding parameters that utilize the actualvalues from the populated spreadsheets.

[0082] In order to build the simulation objects that are needed to runthe simulation software, a simulation development tool interfaces thespreadsheet with the discrete simulation software. The development toolextracts data from the user interface spreadsheets and other sheets,e.g. board data, shift data, etc. It puts this data in a Transfer File,such as, CBM_Transfer.XLS, where the data can be used to the build largeand data intensive simulation objects in the discrete event simulationsoftware. In one embodiment, the development tool uses an OLE connectionto interface a spreadsheet, such as MS Excel®, with a discrete eventsimulation software package, such as Witness® 2000. Other simulationsoftware, such as ProModel® (available from Promodel Corp., Provo Utah),Automod® (available from Autosimulations, Provo Utah), Arena® (availablefrom Systems Modeling, Pittsburgh Pa.), Saimple® (available from AESOPGmbH, Germany) can also be used. Preferably, the development tool hasgrouping functionality similar to that found in products such asMicrosoft Powerpoint,® To avoid accidentally moving objects, a lockfunction can be incorporated. The lock can be on a module base and thelock may be password protected.

[0083] Below is exemplary code for a software tool that, as is shown asstep 4 of FIG. 1, extracts designer objects from an Excel Spreadsheet,builds simulation objects and places the current data in a Witness® 2000simulation. Software Tool *  *  *  Begin Code for Software Tool!  *  * *!************************************************************************************************ ! This section reads all of the data from theCBM_TRANSFER spreadsheet into WITNESS tables!************************************************************************************************ ! ok = XLReadArray (stringpath +“\\cbm_transfer.xis”,“tr_Iine”,“$B$1:$B$101”,Siplacenumbers) PRINT“siplacenumbers”, ok ok = XLReadArray (stringpath + “\\cbm_transfer.xls”,“tr_line”,“$D$1:$D$100”,Siplacepcnums) PRINT “siplacepcnumbers”,ok ok =XLReadArray (stringpath + “\\cbm_transfer.xls”,“Iookup”,“$A$1:$B$43”,routeadd) PRINT “routeadd”,ok ok = XLReadArray(stringpath + “\\cbm_transfer.xls”,“tr_brd_ct”,“$A$1:$A$100”,cycletimes) PRINT “cycletimes”,ok ok =XLReadArray (stringpath + “\\cbm_transfer.xls”,“tr_line”,“$Y$1:$Y$100”,lastx) PRINT “lastx”,ok ok = XLReadArray(stringpath + “\\cbm_transfer.xls” ,“tr_line”,“$G$1:$H$101”,Assistsdata)PRINT “assists”,ok ok = XLReadArray (stringpath +“\\cbm_transfer.xls”,“tr_line”,“$M$1:$N$101” ,Failuresdata) PRINT“failures”,ok ok = XLReadArray (stringpath + “\\cbm_transfer.xls”,“tr_line”,“$E$1:$E$101”,Singleordual) PRINT “singleordual”,ok !!****************************************************************************************************************************** ! This sectionrelates the numbers from the front end to the WITNESS elements sittingin the designer elements box. Object ! chosen also depends on whether itis single or dual lane on the spreadsheet.!****************************************************************************************************************************** ! mccount = 0 FORcount = TO 100 mccount = mccount + 1 IF Singleordual (count) = 1 IFSiplacenumbers (count) = 1200 OR Siplacenumbers (count) = 1230 ORSiplacenumbers (count) = 1250 OR Siplacenumbers (count) = 1040 ORSiplacenumbers (count) = 1050 elname (mccount) = S25_L1 ELSEIFSiplacenumbers (count) = 1042 OR Siplacenumbers (count) = 1052 elname(mccount) = S25Cluster2_L1 ELSEIF Siplacenumbers (count) = 1043 ORSiplacenumbers (count) = 1053 elname (mccount) = S25Cluster3_L1 ELSEIFSiplacenumbers (count) = 1500 elname (mccount) = HS50_L1 ELSEIFSiplacenumbers (count) = 1502 elname (mccount) = HS50Cluster2_L1 ELSEIFSiplacenumbers (count) = 1503 elname (mccount) = HS50Cluster3_L1 ELSEIFSiplacenumbers (count) = 1040 elname (mccount) = S25_L1 ELSEIFSiplacenumbers (count) = 1050 elname (mccount) = S25_L1 ELSEIFSiplacenumbers (count) = 7500 elname (mccount) = Lastlift ELSEIFSiplacenumbers (count) = 9001 OR Siplacenumbers (count) = 9002 ORSiplacenumbers (count) = 9003 OR Siplacenumbers (count) = 9004 elname(mccount) = Printer ELSEIF Siplacenumbers (count) = 8001 ORSiplacenumbers (count) = 8002 OR Siplacenumbers (count) = 8003 ORSiplacenumbers (count) = 8004 OR Siplacenumbers (count) = 8005 ORSiplacenumbers (count) = 8006 elname (mccount) = Oven_1Lane ELSEIFSiplacenumbers (count) = 7000 elname (mccount) = Conv5_1 ENDIF ELSEIFSingleordual (count) = 2 IF Siplacenumbers (count) = 1200 ORSiplacenumbers (count) = 1230 OR Siplacenumbers (count) = 1250 ORSiplacenumbers (count) = 1040 OR Siplacenumbers (count) = 1050 elname(mccount) = S25 ELSEIF Siplacenumbers (count) = 1042 OR Siplacenumbers(count) = 1052 elname (mccount) = S25Cluster2 ELSEIF Siplacenumbers(count) = 1043 OR Siplacenumbers (count) = 1053 elname (mccount) =S25Cluster3 ELSEIF Siplacenumbers (count) = 1500 elname (mccount) = HS50ELSEIF Siplacenumbers (count) = 1502 elname (mccount) = HS50Cluster2ELSEIF Siplacenumbers (count) = 1503 elname (mccount) = HS50Cluster3ELSEIF Siplacenumbers (count) = 1040 elname (mccount) = S25 ELSEIFSiplacenumbers (count) = 1050 elname (mccount) = S25 ELSEIFSiplacenumbers (count) = 7500 elname (mccount) = Lastlift ELSEIFSiplacenumbers (count) = 9001 OR Siplacenumbers (count) = 9002 ORSiplacenumbers (count) = 9003 OR Siplacenumbers (count) = 9004 elname(mccount) = Printer ELSEIF Siplacenumbers (count) = 8001 ORSiplacenumbers (count) = 8002 OR Siplacenumbers (count) = 8003 ORSiplacenumbers (count) = 8004 OR Siplacenumbers (count) = 8005 ORSiplacenumbers (count) = 8006 elname (mccount) Oven_2 ELSEIFSiplacenumbers (count) = 7000 elname (mccount) = Conv5_2 ENDIF ELSEIFSingleordual (count) = 0 IF Siplacenumbers (count) = 7100 elname(mccount) = Shuttlel_2 ELSEIF Siplacenumbers (count) = 7200 elname(mccount) = Shuttle2_1 ELSEIF Siplacenumbers (count) 7300 elname(mccount) = Buffers ELSEIF Siplacenumbers (count) = 7500 elname(mccount) = Lastlift ENDIF ENDIF NEXT ! !********************************************************************************** ! This section sets the path to each of the modules !********************************************************************************** ! stringpathso = stringpathso + “\\” + “\\” PRINTstringpathso FOR X = 1 TO 100 ! IF elname (X) <> NAME2STR (Initial01)modname = STR2NAME (elname (X)) ok = SETINFO (“DETAIL\nSELECT\n“+modname +”\n FILENAME:“ + stringpathso + modname +”.MDL;\nEND“+ modname+”\nEND SELECT\nEND DETAIL”) PRINT elname (X),ok ! ENDIF NEXT ! ! !*************************************************************************************************************** ! This section creates theactual WITNESS simulation elements!******************************************************************************************************************* ! FOR X = 1 TO 100 IF elname(X) <> ″″ success = CreateFromDesigner (STR2NAME (elname (X)),elname(X) + “0” + X,lastx (X),500,NONE,lastx (X) + 20,530) ellist (X) =STR2NAME (elname (X) + “0” + X) ELSE elname (X) = Initial01 ellist (X) =Initial01 ENDIF NEXT ! !!******************************************************************************************************************* ! This section establishesthat the correct cycle time are inserted into each of the simulationelements.!******************************************************************************************************************* ! ! mccount = 1 FOR count =1 TO ELTCOUNT (1) IF ELTTYPE (ELTNAME (count)) = 4 AND LEFTSTR (ELTNAME(count),3) = “buf” mccount = mccount + 1 ELSEIF ELTTYPE (ELTNAME(count)) = 3 AND (LEFTSTR (ELTNAME (count),3) = “Con” OR LEFTSTR(ELTNAME (count),3) = “Shu”) mccount = mccount + 1 ELSEIF ELTTYPE(ELTNAME (count)) = 2 AND RIGHTSTR (ELTNAME (count),5) = “Lift4” mccount= mccount + 1 ! ELSEIF ELTTYPE (ELTNAME (count)) = 3 AND LEFTSTR(ELTNAME (count),4) = “Oven” strvar = “initial01.Cycletimes(“+ mccount+”)/30” periodpos = STRSTR (NAME2STR (ELTNAME (count)),“.”) modname =STR2NAME (LEFTSTR (NAME2STR (ELTNAME (count)),periodpos − 1)) ok =SETINFO (“DETAIL\nSELECT\n“+ modname +”\nBEGIN_MODULE_DETAIL\nOven_2001\nCYCLE TIME: “+ strvar +”;\nENDOven_2001\n END_MODULE_DETAIL\nEND ” + modname + “\nSELECT\nEND DETAIL”)! mccount = mccount + 1 ! ELSE IF ELTTYPE (ELTNAME (count)) = 2 ANDRIGHTSTR (ELTNAME (count),9) = “Printermc” strvar =“initial01.Cycletimes(“+ mccount +”)” periodpos = STRSTR (NAME2STR(ELTNAME (count))“.”) modname = STR2NAME (LEFTSTR (NAME2STR (ELTNAME(count)),periodpos − 1)) ok = SETINFO (“DETAIL\nSELECT\n” + modname +“\n BEGIN_MODULE_DETAIL\nPrintermc\n TYPE: Single;\n CYCLE TIME:” +strvar + “;\nEND Printermc\n END_MODULE_DETAIL\nEND” + modname +“\nSELECT\nEND DETAIL”) mccount = mccount + 1 ! ! ELSEIF ELTTYPE(ELTNAME (count)) = 2 AND RIGHTSTR (ELTNAME (count),4) = “Head” strvar =“initial01.Cycletimes(“+ mccount +”)−0.01” ! !******1 MODULE periodpos =STRSTR (NAME2STR (ELTNAME (count)),“.”) modname = STR2NAME (LEFTSTR(NAME2STR (ELTNAME (count)),periodpos − 1)) ok = SETINFO(“DETAIL\nSELECT\n“+ modname +”\n BEGIN_MODULE_DETAIL\nHead\n TYPE:General(Multi-Cycle);\n CYCLE_DETAIL\n Cycle number: 1\n  * Cycle time:“+ strvar +”\n  * Input quantity: 1;\n  * Finish quantity: 1;\n  *Description: Cycle number I\nEND CYCLE_DETAIL\nEND Head\nEND_MODULE_DETAIL\nEND ” + modname + “\nSELECT\nEND DETAIL”) ! !*****2MODULES periodpos2 = STRLEN (NAME2STR (modname)) modstr = MIDSTR(NAME2STR (ELTNAME (count)),periodpos2 + 2,100) periodpos2 = STRSTR(modstr,“.”) modstr = LEFTSTR (modstr,periodpos2 − 1) ok = SETINFO(“DETAIL\nSELECT\n“+ modname +” \n BEGIN_MODULE_DETAIL\n“+ modstr +” \nBEGIN_MODULE_DETAIL\nHead\n TYPE: General(Multi-Cycle);\n CYCLE_DETAIL\nCycle number: 1\n * Cycle time: “+ strvar +”;\n  * Input quantity:1;\n * Finish quantity: 1;\n * Description: Cycle number 1\nENDCYCLE_DETAIL\nEND Head\nEND_MODULE_DETAIL\nEND “+ modstr +” \nEND_MODULE_DETAIL\nEND“+modname + ”\nSELECT\nEND DETAIL”) ! mccount =mccount + 1 ! ELSEIF ELTTYPE (ELTNAME (count)) = 2 AND RIGHTSTR (ELTNAME(count)4) = “ead2” strvar = “initial01.Cycletimes(“+ mccount +”)−0.01” !!******1 MODULE periodpos = STRSTR (NAME2STR (ELTNAME (count)),“.”)modname = STR2NAME (LEFTSTR (NAME2STR (ELTNAME (count)),periodpos − 1))ok = SETINFO (“DETAIL\nSELECT\n“+ modname +” \nBEGIN_MODULE_DETAIL\nHead2\n  TYPE: General(Multi-Cycle);\nCYCLE_DETAIL\n  Cycle number: 1\n  * Cycle time: “+ strvar +” \n  *Input quantity: 1;\n  * Finish quantity: 1;\n  * Description: Cyclenumber 1\nEND CYCLE_DETAIL\nEND Head2\n END_MODULE_DETAIL\nEND “+modname +” \nSELECT\nEND DETAIL”) ! !*****2 MODULES periodpos2 = STRLEN(NAME2STR (modname)) modstr = MIDSTR (NAME2STR (ELTNAME(count)),periodpos2 + 2,100) periodpos2 = STRSTR (modstr,“.”) modstr =LEFTSTR (modstr,periodpos2 − 1) ok = SETINFO (“DETAIL\nSELECT\n“+modname +” \n BEGIN_MODULE_DETAIL\n“+ modstr +” \nBEGIN_MODULE_DETAIL\nHead2\n  TYPE: General(Multi-Cycle);\nCYCLE_DETAIL\n  Cycle number: 1\n  * Cycle time: “+ strvar +”;\n  *Input quantity; 1;\n  * Finish quantity: 1;\n  * Description: Cyclenumber 1\nEND CYCLE_DETAIL\nEND Head2\nEND_MODULE_DETAIL\nEND“+ modstr+”\n END_MODULE_DETAIL\nEND “+ modname + ”\nSELECT\nEND DETAIL”) !mccount = mccount + 1 ! ENDIF NEXT !!************************************************************************! This section forms the routing table for the boards!************************************************************************FOR count = 1 TO 100 IF elname (count) <>″″ X = IPOSSVAL(routeadd,elname (count),2,1) !PRINT count,X IF routeadd (2,X) <> “None”modoutput (count) = STR2NAME (ellist (count) + “.” + routeadd (2,X) +“(N)”) ELSE modoutput (count) = STR2NAME (ellist (count)) ENDIF ENDIFNEXT ! !*********************************************************** !Shifts !**********SETS SHIFTS IN ALL MACHINES & CONVEYORS!*********************************************************** READSHFT(Shiftpattern,stringpath + “\\tr_shft_I.sft”) FOR count = 1 TO ELTCOUNT(1) IF ELTTYPE (ELTNAME (count)) = 2 OR ELTTYPE (ELTNAME (count)) = 3 ORELTTYPE (ELTNAME (count)) = 1 OR ELTTYPE (ELTNAME (count)) = 8 SETSHIFT(ELTNAME (count),Shiftpattern) ENDIF NEXT!************************************************************************!****************************Assists************************************* *!************************************************************************!RETURN ! PRINT “\f” mccount = 1 FOR count = 1 TO ELTCOUNT (1) IFELTTYPE (ELTNAME (count)) = 4 AND LEFTSTR (ELTNAME (count),3) = “buf”mccount = mccount + 1 ELSEIF ELTTYPE (ELTNAME (count)) = 3 AND (LEFTSTR(ELTNAME (count),3) = “Con” OR LEFTSTR (ELTNAME (count),3) = “Shu”)mccount = mccount + 1 ELSEIF ELTTYPE (ELTNAME (count)) = 2 AND RIGHTSTR(ELTNAME (count),5) = “Lift4” mccount = mccount + 1 ! ELSEIF ELTTYPE(ELTNAME (count)) = 3 AND LEFTSTR (ELTNAME (count),4) = “Oven” strvar =“Normal(initial01.Assists (1,“+ mccount +”) *2, 0.05 * initial01.Assists(1,“+ mccount +”),“+ 9 + mccount +”)” strvar2 =“Normal(initial01.Assists (2,“+ mccount +”), 0.05 * initial01.Assists(2,“+ mccount +”),“+ 8 + mccount +”)” periodpos = STRSTR (NAME2STR(ELTNAME (count)),“.”) modname = STR2NAME (LEFTSTR (NAME2STR (ELTNAME(count)),periodpos − 1)) ok = SETINFO (“DETAIL\nSELECT\n“+ modname +”\nBEGIN_MODULE_DETAIL\nOven_2001\nBREAKDOWNS: Available time;\n* Downinterval: “+ strvar +”\n* Repair Time: “+ strvar2 +”;\nEND Oven_2001\nEND_MODULE_DETAIL\nEND “+ modname + ”\nSELECT\nEND DETAIL”) ! mccount =mccount + 1 ! ELSEIF ELTTYPE (ELTNAME (count)) = 2 AND RIGHTSTR (ELTNAME(count),9) = “Printermc” strvar = “Normat(initial01.Assists (1,“+mccount +”) *2, 0.05 * initial01.Assists (1,“+ mccount +”),“+ 9 +mccount +”)” strvar2 = “Normal(initial01.Assists (2,“+ mccount +”),0.05 * initial01.Assists (2,“+ mccount +”),“+ 8 + mccount +”)” periodpos= STRSTR (NAME2STR (ELTNAME (count)),“.”) modname STR2NAME (LEFTSTR(NAME2STR (ELTNAME (count)),periodpos − 1)) ok = SETINFO(“DETAIL\nSELECT\n“+ modname +”\nBEGIN_MODULE_DETAIL\nPrintermc\nBREAKDOWN_DETAIL\nBreakdown number: 2\n*Mode: Busy Time;\n* Down interval: “+ strvar +”;\n* Repair time: “+strvar2 +”;\n* Scrap part: No;\n* Description: MTBA\nSetup on repair:No;\n* Check at cycle start only: Yes;\nEND BREAKDOWN_DETAIL\nENDPrintermc\nEND_MODULE_DETAIL\nEND“+ modname +”\nSELECT\nEND DETAIL”)mccount = mccount + 1 ELSEIF ELTTYPE (ELTNAME (count)) = 2 AND RIGHTSTR(ELTNAME (count),4) = “Head” strvar “Normal(initial01.Assists (1,“+mccount +”) *2, 0.05 * initial01.Assists (1,“+ mccount +”),“+ 9 +mccount +”)” strvar2 = “Normal(initial01.Assists (2,“+ mccount +”),0.05 * initial01.Assists (2,“+ mccount +”),“+ 8 + mccount +”)”!**********1 Module periodpos = STRSTR (NAME2STR (ELTNAME (count)),“.”)modname = STR2NAME (LEFTSTR (NAME2STR (ELTNAME (count)),periodpos − 1))ok = SETINFO (“DETAIL\nSELECT\n“+ modname +”\nBEGIN_MODULE_DETAIL\nHead\nBREAKDOWN_DETAIL\nBreakdown number: 2\n*Mode: Busy Time;\n* Down interval: “+ strvar +”;\fl* Repair time: “+strvar2 +”;\n* Scrap part: No;\n* Description: MTBA\nSetup on repair:No;\n* Check at cycle start only: Yes;\nEND BREAKDOWN_DETAIL\nENDHead\nEND_MODULE_DETAIL\nEND “+ modname +”\nSELECT\nEND DETAIL”)!***********2 Modules periodpos2 = STRLEN (NAME2STR (modname)) modstr =MIDSTR (NAME2STR (ELTNAME (count)),periodpos2 + 2,100) periodpos2 =STRSTR (modstr,“.”) modstr = LEFTSTR (modstr,periodpos2 − 1) ok =SETINFO (“DETAIL\nSELECTXn“+ modname +”\n BEGIN_MODULE_DETAIL\n“+ modstr+”\n BEGIN_MODULE_DETAIL\nHead\n BREAKDOWN DETAIL\nBreakdown number:2\n* Mode: Busy Time;\n* Down interval: “+ strvar +”;\n* Repair time: “+strvar2 +”;\n* Scrap part: No;\n* Description: MTBA\nSetup on repair:No;\n* Check at cycle start only: Yes;\nEND BREAKDOWN_DETAIL\nENDHead\nEND_MODULE_DETAIL\nEND“+ modstr +”\n END_MODULE_DETAIL\nEND“+modname + ”\nSELECT\nEND DETAIL”) ! mccount = mccount + 1 ELSEIF ELTTYPE(ELTNAME (count)) = 2 AND RIGHTSTR (ELTNAME (count),4) = “ead2” strvar =“Normal(initial01.Assists (1, “+ mccount +”) *2, 0.005 *initial01.Assists (1,“+ mccount +”),“+ 9 + mccount +”)” strvar2 =“Normal(initial01.Assists (2,“+ mccount +”), 0.05 * initial01.Assists(2,“+ mccount +”),“+ 8 + mccount +”)” !**********1 Module periodpos =STRSTR (NAME2STR (ELTNAME (count)),“.”) modname = STR2NAME (LEFTSTR(NAME2STR (ELTNAME (count)),periodpos − 1)) ok = SETINFO(“DETAIL\nSELECT\n“+ modname +”\nBEGIN_MODULE_DETAIL\nHead2\nBREAKDOWN_DETAIL\nBreakdown number: 2\n*Mode: Busy Time;\n* Down interval: “+ strvar +”;\n* Repair time: “+strvar2 +”;\n* Scrap part: No;\n* Description: MTBA\nSetup on repair:No;\n* Check at cycle start only: Yes;\nEND BREAKDOWN_DETAIL\nENDHead2\nEND_MODULE_DETAIL\nEND “+ modname +”\nSELECT\nEND DETAIL”)!***********2 Modules periodpos2 = STRLEN (NAME2STR (modname)) modstr =MIDSTR (NAME2STR (ELTNAME (count)),periodpos2 + 2,100) periodpos2 =STRSTR (modstr,“.”) modstr = LEFTSTR (modstr,periodpos2 − 1) ok =SETINFO (“DETAIL\nSELECT\n“+ modname +”\n BEGIN_MODULE_DETAIL\n“+ modstr+”\n BEGIN_MODULE_DETAIL\nHead2\n BREAKDOWN_DETAIL\nBreakdown number:2\n* Mode: Busy Time;\n* Down interval: “+ strvar +”;\* Repair time: “+strvar2 +”;\n* Scrap part: No;\n* Description: MTBA\nSetup on repair:No;\n* Check at cycle start only: Yes;\nEND BREAKDOWN_DETAIL\nENDHead2\nEND_MODULE_DETAIL\nEND“+ modstr +”\n END_MODULE_DETAIL\nEND “+modname + ”\nSELECT\nEND DETAIL”) ! mccount = mccount + 1 ENDIF NEXT !rowcount = 1 FOR count = 1 TO mccount Assists (1,count) = Assistsdata(1,rowcount) Assists (2,count) = Assistsdata (2,rowcount) Siplaceponums(rowcount) = Siplacepcnums (rowcount) − 1 IF Siplacepcnums (rowcount) <=0 rowcount = rowcount + 1 ENDIF NEXT!********************************************* !Failures at Level 1!********************************************* PRINT “\f” mccount = 1FOR count = 1 TO ELTCOUNT (1) IF ELTTYPE (ELTNAME (count)) = 4 ANDLEFTSTR (ELTNAME (count),3) = “buf” mccount = mccount + 1 ELSEIF ELTTYPE(ELTNAME (count)) = 3 AND (LEFTSTR (ELTNAME (count),3) = “Con” ORLEFTSTR (ELTNAME (count),3) = “Shu”) mccount = mccount + 1 ELSEIFELTTYPE (ELTNAME (count)) = 2 AND RIGHTSTR (ELTNAME (count),5) = “Lift4”mccount = mccount + 1 ! ELSEIF ELTTYPE (ELTNAME (count)) = 3 AND LEFTSTR(ELTNAME (count),4) = “Oven” strvar = “Normal(initial01.failures1 (1,“+mccount +”) *2, 0.05 * initial01.failures1 (1,“+ mccount +”),“+ 3 +mccount +”)” strvar2 = “Normal(initial01.failures1 (2,“+ mccount +”),0.05 * initial01.failures1 (2,“+ mccount +”),“+ 4 + mccount +”)”periodpos = STRSTR (NAME2STR (ELTNAME (count)),“.”) modname = STR2NAME(LEFTSTR (NAME2STR (ELTNAME (count)),periodpos − 1)) ok = SETINFO(“DETAIL\nSELECT\n“+ modname +”\nBEGIN_MODULE_DETAIL\nOven_2001\nBREAKDOWNS: Available time;\n* Downinterval: “+ strvar +”\n,* Repair Time: “+ strvar2 +”;\nEND Oven_2001\nEND_MODULE_DETAIL\nEND “+ modname + ”\nSELECT\nEND DETAIL”) ! mccount =mccount + 1 ! ELSEIF ELTTYPE (ELTNAME (count)) = 2 AND RIGHTSTR (ELTNAME(count),9) = “Printermc” strvar = “Normal(initial01,failures1 (1,“+mccount +”) *2, 0.05 * initial01.failures1 (1,“+ mccount +”),“+ 9 +mccount +”)” strvar2 = “Normal(initial01.failures1 (2,“+ mccount +”),0.05 * initial01.failures1 (2,“+ mccount +”),“+ 8 + mccount +”)”periodpos = STRSTR (NAME2STR (ELTNAME (count)),“.”) modname = STR2NAME(LEFTSTR (NAME2STR (ELTNAME (count)),periodpos − 1)) ok = SETINFO(“DETAIL\nSELECT\n“+ modname +”\nBEGIN_MODULE_DETAIL\nPrintermc\nBREAKDOWN_DETAIL\nBreakdown number: 1\n*Mode: Busy Time;\n* Down interval: “+ strvar +”;\n* Repair time: “+strvar2 +”;\n* Scrap part: No;\n* Description: MTBA\nSetup on repair:No;\n* Check at cycle start only: Yes;\nEND BREAKDOWN_DETAIL\nENDPrintermc\nEND_MODULE_DETAIL\nEND “+ modname +”\nSELECT\nEND DETAIL”)mccount = mccount + 1 ELSEIF ELTTYPE (ELTNAME (count)) = 2 AND RIGHTSTR(ELTNAME (count),4) = “Head” strvar = “Normal(initial01.failures1 (1,“+mccount +”) *2, 0.05 * intial01.failures1 (1,“+ mccount +”),“+ 9 +mccount +”)” strvar2 = “Normal(initial01.failures1 (2,“+ mccount +”),0.05 * initial01.failures1 (2,“+ mccount +”),“+ 8 + mccount +”)”!**********1 Module periodpos = STRSTR (NAME2STR (ELTNAME (count)),“.”)modname = STR2NAME (LEFTSTR (NAME2STR (ELTNAME (count)),periodpos − 1))ok = SETINFO (“DETAIL\nSELECT\n“+ modname +”\nBEGIN_MODULE_DETAIL\nHead\nBREAKDOWN_DETAIL\nBreakdown number: 1\n*Mode: Busy Time;\n* Down interval: “+ strvar +”;\n* Repair time: “+strvar2 +”;\n* Scrap part: No;\n* Description: MTBA\nSetup on repair:No;\n* Check at cycle start only: Yes;\nEND BREAKDOWN_DETAIL\nENDHead\nEND_MODULE_DETAIL\nEND “+ modname +”\nSELECT\nEND DETAIL”)!***********2 Modules periodpos2 = STRLEN (NAME2STR (modname)) modstr =MIDSTR (NAME2STR (ELTNAME (count)),periodpos2 + 2,100) periodpos2 =STRSTR (modstr,“.”) modstr = LEFTSTR (modstr,periodpos2 − 1) ok =SETINFO (“DETAIL\nSELECT\n“+ modname +”\n BEGIN_MODULE_DETAIL\n“+ modstr+”\n BEGIN_MODULE_DETAIL\nHead\n BREAKDOWN_DETAIL\nBreakdown number:1\n* Mode: Busy Time;\n* Down interval:“+ strvar +”;\n* Repair time: “+strvar2 +”;\n* Scrap part: No;\n* Description: MTBA\nSetup on repair:No;\n* Check at cycle start only: Yes;\nEND BREAKDOWN_DETAIL\nENDHead\nEND_MODULE_DETAIL\nEND “+ modstr +”\nEND_MODULE_DETAIL\nEND “+modname + ”\nSELECT\nEND DETAIL”) ! mccount = mccount + 1 ELSEIF ELTTYPE(ELTNAME (count)) = 2 AND RIGHTSTR (ELTNAME (count),4) = “ead2” strvar =“Normal(initial01.failures1 (1,“+ mccount +”) *2, 0.05 *initial01.failures1 (1,“+ mccount +”,“+ 9 + mccount +”)” strvar2 =“Normal(initial01.failures1 (2,“+ mccount +”), 0.05 *initial01.failures1 (2,“+ mccount +”),“+ 8 + mccount +”)” !**********1Module periodpos = STRSTR (NAME2STR (ELTNAME (count)),“.”) modname =STR2NAME (LEFTSTR (NAME2STR (ELTNAME (count)),periodpos − 1)) ok =SETINFO (“DETAIL\nSELECT\n“+ modname +”\nBEGIN_MODULE_DETAIL\nHead2\nBREAKDOWN_DETAIL\nBreakdown number: 1\n*Scrap part: No;\n* Description: MTBF\nSetup on repair: No;\n* Check atcycle start only: Yes,\nEND BREAKDOWN_DETAIL\nENDHead2\nEND_MODULE_DETAIL\nEND “+ modname +”\nSELECT\END DETAIL”)!***********2 Modules periodpos2 = STRLEN (NAME2STR (modname)) modstr =MIDSTR (NAME2STR (ELTNAME (count)),periodpos2 + 2,100) periodpos2 =STRSTR (modstr,“.”) modstr = LEFTSTR (modstr;periodpos2 − 1) ok =SETINFO (“DETAIL\nSELECT\n“+ modname +”\n BEGIN_MODULE_DETAIL\n“+ modstr+”\n BEGIN_MODULE_DETAIL\nHead2\n BREAKDOWN_DETAIL\nBreakdown number:1\n* Mode: Busy Time;\n* Down interval: “+ strvar +”;\n* Repair time: “+strvar2 +”;\n* Scrap part: No;\n* Description: MTBF\nSetup on repair:No;\n* Check at cycle start only: Yes;\nEND BREAKDOWN_DETAIL\nENDHead2\nEND_MODULE_DETAIL\nEND “+ modstr +”\n END_MODULE_DETAIL\nEND “+modname + ”\nSELECT\nEND DETAIL”) ! mccount = mccount + 1 ENDIF NEXT !ok = XLReadArray (stringpath +“\\cbm_transfer.xls”,“tr_”,“$D$1:$D$100”,Siplacepcnums) PRINT“siplacepcnumbers”,ok rowcount = 1 FOR count = 1 TO mccount Failures1(1,count) = Failuresdata (1,rowcount) Failures1 (2,count) = Failuresdata(2,rowcount) Siplacepcnums (rowcount) = Siplacepcnums (rowcount) − 1 IFSiplacepcnums (rowcount) <= 0 rowcount = rowcount + 1 ENDIF NEXT *  *  * END CODE FOR SOFTWARE TOOL  *  *  *

[0084] After the simulation objects are built, they may be outputted,e.g., to the screen, in a spreadsheet form as is shown in FIG. 9. Asimulation may be run by selecting a button to execute the simulation,or the simulation may be programmed to run automatically after it isbuilt.

[0085] After the simulation is run, outputs from the simulation softwaremay be exported to an output spread sheet. When used to performelectronic assembly solutions, outputs may comprise data such as thenumber of circuit boards processed per time period of simulation andutilization of machines and conveyors. The present invention could beused in other areas besides the electronic assembly area and wouldprovide data appropriate to these areas.

[0086] The output spreadsheet may be configured to accept certaininputs, such as boundary conditions, exchange rates, and depreciationrates. In some embodiments, the output spreadsheet may contain buttonssuch as those shown in FIG. 10. The spreadsheet may also be configuredto provide useful machine and assemble line data, such as cost ofownership and machine statistics.

[0087] Selecting the “Boundaries” button opens the interface shown inFIG. 11 and allows the user to enter boundary data. Selecting the“Setup” button results in the launching of an interface as depicted inFIG. 12 and allows the user to enter Setup information. The user mayalso select the “Quality” button to launch an interface as is depictedin FIG. 13. This allows the user to input quality data and criteria.Likewise, the user can input maintenance data by clicking on the“Maintenance” button, which launches another input interface permittingthe entry of maintenance-related information. (See FIG. 14).

[0088]FIG. 15 depicts a spreadsheet configured to provide cost ofownership data. The data may also be depicted graphically as is shown inFIG. 16. Typical cost of ownership calculations may employ the followingequations.

Cost per Year=Investment*depreciation(%)*(1+Interest Rate)+Labor costOperator+Labor cost Technician+Electricity cost+Air costs+Nitrogencosts+Floorspace costs+Spare part costs+Setup cost+Maintenance cost. Allcosts may be summarized per year.

Output per year=(Yearly working hours−setup time−maintenancetime−quality time)*Real placement capacity (by simulation)

Quality time=time which is necessary to reproduce bad boards.

[0089]FIG. 16A is a flowchart illustrating how a cost of ownershipfunction may be configured. Typically, cost of ownership will becalculated in conformance with SEMI E 35 standards, which are herebyincorporated by reference.

[0090] Central to a successful modeling and simulation effort is thearrival at an appropriate level of abstraction for modeling the systemof interest. While simulations may be run at various levels ofabstraction, tradeoffs between accuracy and speed often exist. One wantsto represent the system with sufficient fidelity and detail to generateresults that satisfy the developer's objectives. At the same time, thisgoal needs to be achieved without excessive use of scarce resources,which, among other things, include the time available to set upparticular models of systems to be simulated, as well as the time forthe simulations to execute.

[0091] According to the present invention, satisfactory results in theelectronic assembly solutions area may be obtained by modeling assemblysystem configurations at a material flow level of abstraction. Otherlevels of abstraction may be used might be used consistent with otheraspects of the present invention; however, a higher level of abstractionmay produce less accurate results and a lower level of abstraction mayrequire more resources and may give more detail than is necessary foradequate customer benefit modeling. For example, to simulate at a lowerlevel of abstraction, more details may be required for the simulationobjects.

[0092] Because the present invention allows simulation objects to bebuilt, and simulations to be run, in a comparatively short period oftime, it is possible to quickly and easily model actual production lineconfigurations. This modeling allows the accuracy of the simulation tobe accessed and also allows simulation parameters to be adjusted toimprove the overall performance of the simulation tool. For example, ifthe cycle time of a particular machine were reduced by one second, thetool can be used to predict the effect on the entire line's performance.

[0093] The present invention provides numerous advantages when modelingand designing assembly lines and other systems. In particular, thepresent invention provides an easy-to-use customer benefit modeling toolthat is readily adaptable for use in the electronic assembly systemsequipment and/or solutions areas. It enables a method for applyingcustomer benefit modeling to permit new pricing and financingarrangements for the electronic assembly systems, equipment andsolutions areas, and it provides for a consultative sales process thatemploys these modeling approaches. For example, consultants and othersmay employ the customer benefit modeling to develop performance-basedcontracts for configuring and/or selling of assembly and/or productionsystems. By incorporating a customer solutions database that employsstandard calculations, all consultants employing the tools andtechniques of the present invention will have at their disposalstandardized calculating schemes. This will enable improved solutionsbusiness models based on analysis, modeling, simulation, andquantification of customer benefits.

[0094] The tools and techniques of the present invention may be used toprovide a model-based, closed loop process control approach toelectronic assembly. An optimizer module based on advanced computingmethodology may be added, as well as a combined business rulerepository/optimizer module for electronic assembly systems, equipmentand/or solutions. A combination data mining module and business rulerepository may also be added.

[0095] The present invention may also be enabled to function over anetwork, such as the Internet. Consultants and customers can then accessthe tools and methods of the present invention from virtually anywhere.In addition, a web-based version allows the simulation objects to becentrally maintained and the database of parameters for the designerelements may also be centrally maintained and readily updated.

[0096] The present invention is particularly well suited for use byconsultants wishing to improve the efficiency of assembly lines. FIG. 17illustrates the logic flow of how the present invention may be used. Aconsultant first inputs, in a defined user interface, a configurationresembling an existing assembly line, step 1001. The consultant may dothis by selecting or inputting predefined Designer Elements, 1002, whichmay include values for certain operating parameters associated with theequipment and line being modeled. These values may be stored in aseparate database, which can be periodically updated. This results in abase case configuration, Step 1003. Next, various data, such as actualcustomer data inputs, 1004, including actual operating parameters fromthe existing line may be incorporated and used to adapt the default dataof the base case, step 1005. If data on the actual operating parametersis not available, default data can be used. Next, a simulation is re-runusing the actual customer data, step 1007. The values obtained by themodel can be compared with the customer's actual production line data

[0097] Next, at step 1009, the consultant, using his own consultingknowledge, may attempt to optimize certain line parameters, such ascycle times, times to repair a particular machine, length or speed ofconveyors, etc. It is also possible to allow the simulation software toautomatically optimize some of these parameters. For example, Witness®2000, contains a function to do this automatic optimization. Some ofthese parameter values may have initially been incorporated from thedata associated with the Designer Elements.

[0098] Another simulation is created, step 1011. If the simulationproduces erroneous results, it may be necessary to redefine and re-adaptthe default data to the project at step 1005. If the results produced atstep 1011 are reasonable, the configuration and associated parameterscan be stored in a database, 1020, or the optimization step 1009, may bere-run to further optimize the line.

[0099] Logic flow line 1050 in FIG. 17 shows one possible embodimentwhere the operating parameter database associated with the designerelements is updated based on real world experience. This database may beupdated and be customized to reflect actual experiences of a particularcustomer.

[0100] The customer benefit modeling tool of the present invention maysupport various business models and methods. For example, the tool maybe used as part of a method of doing business for an electronicsassembly solutions business, such as is outlined in FIGS. 18 and 19. Anelectronics assembly solutions business method may employ variousphases, as is outlined in FIG. 20. In phase 1, a PCB assembly line maybe modeled statically and a simulation may be run using performancemetrics that are estimated and may perform sensitivity analysis. In aphase 2, data may be collected from the PCB assembly line. In phase 3,data mining may occur through a Facilitator. The data collected may beused to perform modeling and simulation, as well as parameter estimationto validate performance metrics, perform sensitivity analysis, toperform forecasting and prediction. A business rule repository may beimplemented that may, in some embodiments, acquire expert knowledge—fromconsultants and customers. The business rule repository may exchangeinformation with modeling and simulation parameter groups, which may inturn with the business rules repository data be used to do lineoptimization. Performance may be optimized by the use of an InferenceEngine. The method may be web-enabled using web portals and may providefeedback to the PCB assembly line for closed loop control.

[0101] The electronics assembly solutions business method may focus onthe line, multi-line and shop floor levels in a customer's electronicsassembly facilities. Customers may be both original equipmentmanufacturers (“OEMs”) and contract manufacturers (“CMs”). A solutionsbusiness method may encompass a scope of supply that includes placementmachines and other machines from Certified Partners, line level softwareproducts and a full range of service and support capabilities. The salesof electronics assembly solutions may be managed through a newConsultative Sales Process based on Customer Value Space Analysis andFulfillment. The primary opportunities to increase customer solutionsvalue include: Increased utilization, throughput, yield, flexibility andresponsiveness; Reduced inventories; and Effective new product and newtechnology introduction. Long term performance may be optimized throughbundled packages of innovative software and consulting services. Thismay enable real people in real factories to achieve high levels ofongoing system performance. Once a system has been modeled andimplemented, real production data can be used to calibrate the model andimprove the accuracy of future system changes.

[0102]FIG. 21 graphically represent the advantages that are achievablewith the tools and methods of the present invention when compared withprior art tools and methods. As is graphically depicted, key enablers,i.e. products, methodologies, practices, tools, software applications,services, etc. enable customers to improve their performance and enhanceperformance metrics. Enhancement may be improved as part of an ongoingproduction line.

[0103] The flowchart in FIG. 22 graphically illustrates a solutionsvalue proposition from a customer project life cycle view. First, newline requirements are defined. Next, the basic configuration isselected. Suggested modifications are simulated, performance isanalyzed, and the line configuration is optimized. A final lineconfiguration is defined and a customer is shown the value of theoptimization. Key performance metrics are defined and a contractimplementing the optimization is negotiated.

[0104] Next, orders are placed for necessary equipment and components.The new line is then installed and commissioned. The line is monitoredand performance problems are defined as part of a comprehensiveperformance analysis. An optimization plan is defined and the customeris shown the value of the optimization. A contract is then negotiatedand required line changes are identified. The process may be repeateduntil the desired level of optimization is reached.

[0105] The customer benefit modeling tool of the present inventionenables a business method that includes the steps of providing aspecific set of documented, quantitative consulting process by trainedconsultants within a defined consulting framework. In an embodiment ofthe consulting process according to the present invention, a consultant:benchmarks existing customer operations; identifies and prioritizessolutions opportunities at a customer site; designs optimized solutionscomprising machines, software tools, and operating parameters, such asstaffing; defines achievable target performance metrics for proposedsolutions; and quantifies and shows the customer benefit of implementingthe proposed solutions.

[0106] The tools and methods of the present invention define: optimumshop floor configuration for a defined set of products and productionvolume; optimum line configurations and specific equipment within theshop floor; optimum batch sizing; set-up and changeover strategy;achievable target set-up and changeover metrics; achievable targetrun-time performance metrics; the operating environment needed toachieve target performance metrix, such as staffing, material supply,maintenance, operating rules; when and how to introduce specific newtechnology; and when and how to introduce new products.

[0107] The customer benefit modeling tool can accurately predict theperformance of real production systems because it uses a dynamic modelbased on discrete event simulation. Accordingly, it enables customersystem performance to be expressed in a range of metrics, including forexample, throughput, cost performance, yield, OEE, and COO.

[0108] An embodiment of a method according to the present invention ofusing the customer benefit modeling tools described above involvesmanaging a given customers specific project through a series of phasesdefined by a consultative sales process, as is outline in FIG. 23. Thesemethod steps include:

[0109] Step 450, phase 1—Identify opportunity. In this step, which is asolution level, custom details, primary issues and goal are identified.Key criteria, such as needs, willingness to pay, and potential costs andsavings are also identified. This step may be performed by a consultantor salesperson. If performed by a salesperson, a consultant may provideany necessary support.

[0110] Step 460, phase 2—Identify specific high level analysis. In thisstep, specific opportunities are identified for detailed analysis. Thecustomer benefit tool of the present invention enables a consultingprocess, which may include showing a rough solution with value potentialto a customer. In some embodiments, this will be generated on the flyduring a sales call or initial meeting with the client. “What if”scenarios can be evaluated quickly to illustrate the value that can beadded for the customer.

[0111] Step 470, phase 3—Detailed Customer value analysis. In this step,detailed measurements and analysis for each area covered in phase 2 canbe performed. The customer benefit modeling tool of the presentinvention enables a consultant to show accurately the solutions valuepotential. “What if” changes and benefits can be analyzed. In thisphase, more detailed analysis is performed. In one embodiment, theconsultant is paid for his time and efforts in this phase, whereas inphase 2, the consultant or sales person may make only sales pitches andtherefore not be compensated for the effort expended there.

[0112] Step 480, phase 4—Implementation plan and contract. In thisphase, a detao;ed performance improvement plan for each area from phase3 is developed. A value based implementation contract may be drawn-upand negotiated. Also in this phase, the equipment, software,implementation plan, scope of consulting and technical services can bespecified.

[0113] Step 490, phase 5—Implement. In this phase, the plan of phase 4is implemented. The proposed customer benefits of the proposed solutionare validated. This phase provides an opportunity for the consultant todemonstrate excellent implementation capability. The consultant also hasthe opportunity in this phase to become a preferred supplier (overinternal resources) for the next project. The consultant, in someembodiments, is paid on a value added basis.

[0114] In an embodiment of the consultative sales process, all resultsfrom customer specific projects are used to build a customer solutionsdatabase. This database enables: Benchmarking of the current andproposed solutions; Proliferation of “best practice;” Consistency ofprocesses and solutions; and Minimization of overall solution variety.

[0115] A consulting knowledge management process can be used toorganize, update, and disseminate knowledge about the customer benefittool, the consulting process, the consulting framework and the customersolutions database. In one embodiment, the consulting knowledgemanagement process comprise: Documenting; Training; Performing casestudies; and Meeting to discuss “Best Practices.”

[0116] The customer benefit modeling tool of the present invention isparticularly well-suited to enable electronics assembly solutionsselling based on customer value. The tool allows firm performancemetrics to be established for any electronics assembly solutions projectprior to implementation. The metrics may span the range from throughput,basic cost performance and yield, through overall equipmenteffectiveness (“OEE”) and onto full cost of ownership (“COO”). The toolenables a consultant to accurately quantify unfulfilled value spaces ata customer site; design an optimized assembly solution to “fill thespaces”—this results in low cost of production and other customerspecific goals; and to quantify and show the customer benefit of theproposed solution.

[0117] The customer benefit tool of the present invention enables uniqueand innovative sales and marketing techniques by offering low-risk linelevel performance guarantees (e.g. throughput, yield, OEE, COO, unitassembly cost). The present invention also offers gain share pricingsolutions packages.

[0118] The tools and methods of the present invention may be used tomodel various processes and production environments. One primary targetdomain is for electronics assembly/test line and shop floor levels,although it is also well-suited for use in the general electronicassembly factory level, including sub-assembly levels of building, finalassembly, testing, and packaging). In some key sectors (e.g. cellphonemanufacture) electronics assembly and testing are directly in-line withfinal assembly and testing. In situations such as these, final assemblyand testing may be considered part of the electronics assembly line formodeling purposes. Electronics assembly/test lines typically comprise alinked series of linked processing machines and board handlingequipment. The handling equipment may include WIP buffers. Local,dedicated, component storage areas may be present. Individual machinesmay be able to buffer boards between one or more process stages andlince can be single or dual conveyor, synchronous or asynchronousoperations.

[0119] The primary processes and environments that may be modeled mayinclude SMT assembly (print, dispense, place, reflow /cure), throughhole assembly (auto, manual, pin/connector insertion), inspection(manual, auto-optical, x-ray), and Test (in circuit, functional). Anelectronics assembly shop floor typically comprises: multiple lines thatstart and finish with a magazine load/unload unit; workcells containinggroups of machines (not all in-line); WIP buffers; local componentstorage areas; tooling storage areas; and feeder set-up/kitting areas.

[0120] One business method of the present invention may employ the useof certified machine suppliers. All machines that are offered as part ofan electronics assembly solutions will come from a certified OEMpartner. Certification may require providing and maintaining for each ofthe specific equipment/option configurations: Tools for calculationnominal cycle time for a defined electronic assembly; Tools forcalculating nominal process yield for a defined electronic assembly;Full and validated COO model, including accurate MTBF/MTTR data; Fullclassification/definition of interrupts that can decrease throughputfrom nominal levels; Information/acceptable roadmap for automatedprovision of key event data automatically available from equipment; andFull classification/definition of factors that can increase defectsabove nominal levels.

[0121] Assembly lines that may be the subject of the consultative salesprocess and that are suitable for use with the customer benefit modeltool include:

[0122] Type A lines, which are very high volume, low mix lines havingthe following characteristic: 100 to 300 k components per hour (“cph”);Up to 14 assembly systems per line (top and bottom assembly); Up to 40total machines per line with a line length up to 100 m; Fixed set-up(i.e. less than 1 product change per month); 24×7 production; and Pulsetime 10 to 45 seconds.

[0123] Type B lines, which are High Volume, Medium Mix lines having thefollowing characteristics: 40 to 120 cph; Up to 6 SIPLACE in ine (singlesided assembly); Up to 25 machines per line with a line length up to 50m; Flexibility through “cluster configuration;” and 24×5 operation.

[0124] Type C lines, which are medium volume, high mix lines and havethe following characteristics: 15 to 50 cph; Up to 3 SIPLACE machinesper line; Up to 15 machines per line with a line length up to 25 m;Small batch sizes, wide component and packaging type variety; and Ratioof production to set-up/changeover time can be less then 1:1.

[0125] A consultant may use the customer benefit modeling tool of thepresent invention to develop a basic line scenario. As is shown in FIG.24, the process flow for developing the scenario may start with thedefining of a line process sequence. This may be selected from a libraryof supported process stages. Next the line equipment configuration isdefined. This includes selecting models, number of units and options.These may be selected from a library of supported machines. In oneembodiment, all have certified/expected COO models associated with them.

[0126] Next, in the “products defined” step, a process sequence isentered and for each stage in the process cycle time, composite yield,cost of material added, and handling data are inputted. Thisdefinitional step may be manual or may be automated through the use ofsuch tools as Siemens SICALC tool. Next, a production schedule isdefined. Set-up cycle time for a first cluster is entered, as is set-upand changeover time. This may be manually inputted or may beautomatically inputted from a tool such as Siemens SIPLACE cluster tool.The process may require running several iterations to get a consensus onbasic line design.

[0127] The customer benefit model tool of the present invention may alsobe used to perform customer project lifecycle development. Thislifecycle development process is outline in the flowcharts of FIGS. 25to 29. As shown in FIG. 25 the process can line and system design. Itcan include optimized design capabilities (see FIG. 26); it may includeautomated performance monitoring. (See FIG. 27). In some embodimentsdata between design and monitoring activities may be shared. (See FIG.28). A common data base may also be employed to aid in performanceoptimization. (See FIG. 29).

Line Performance Monitoring/Basic Analysis

[0128] One aspect of the present invention is that it allows for lineperformance monitoring and basic analysis. In one embodiment a linelevel software application that can be built upon is implemented. Allmachines in the line may be connected to together through an interfaceor in any suitable manner. The application monitors and records keytime-based event data, such as “Board xyz is entering,” or “Beginprocessing on Boardxyz,” or “Board ID='xyz001 is complete,” or “PartABC123 is rejected at pickup location 15.” Preferably, the applicationsupports machine/line level performance reporting and simple “drilldown” capabilities defined to current accepted industry standards, forexample from Semiconductor Equipment and Materials International(“SEMI”) or Association Connecting Electronic Industries (“IPC”). Basicline performance guarantees are fully enabled. This embodiment requiresthe installation of “Solution X” infrastructure (server, framework,database—at least one per site). In this embodiment connectivity to eachmachine is achieved with interface/adapter kits (i.e. network adapters,drivers, etc.) Other software modules may “Plug and Play” into theinfrastructure. This minimizes customer time and the costs involved.

[0129] This aspect of the invention is applicable to variousmanufacturers equipment. The lines that may be monitored may beproprietary, such as Siemens SIPLACE® lines, or they can be comprised ofequipment from various competitors.

[0130] This aspect of the invention provides for a targeted salesbusiness method where line monitoring capabilities are installed on allnew lines. It also enables concurrent/subsequent sale of high value/highmargin customer benefit modeling, consulting and sale of softwarepackages.

[0131] The customer benefit modeling tool of the present invention mayalso be used to optimize line set-up and line change over. One method ofoptimization involves optimizing set-up and changeover strategy toachieve required production goals. The set-up process can be managed toachieve a target performance.

[0132] The present invention provides for a consultative method that mayinclude the steps of developing a strategy for optimization, developingan implementation plan, and showing the benefits of the plan to thecustomer by using the customer benefit modeling tool of the presentinvention.

Line Set-up and Changeover Optimization

[0133] In one embodiment, the method of line set-up and changeoveroptimization may be implemented by software to optimize clustering,perform comprehensive set-up verification, perform changeovermanagement, and handle local logistics.

[0134] Optimizing clustering involves consideration of comprehensiveproduction constraints. These may include: board output requirements(wip, lot cycle time, due date); nominal changeover time; componentplacement rate; number of component reels (or trays, sticks); and numberof feeders and feeder tables.

[0135] Comprehensive Set-up Verification includes external set-up; it ispreferably performed in a closed loop fashion to avoid mistakes. Itshould cover critical parts, such as value, reworkability, testcoverage, and shortages). Changeover Management involves the developmentof nominal schedules, monitoring key events, and configuring escalationprocesses/messages. Local Logistics often involve completing a list ofrequired materials to ensure set-ups for the next time intervals.

[0136] The benefits of this method include equipment efficiencyincreases of up to 35%. Less scrap is generated and rework is reduced.This method also results in less set-up errors. The customers that maybe prime targets for this method include all Type B and C production,and some Type A (e.g. prototype/pilot runs). When this method isemployed, the customer benefit modeling tool may provide to the customerthe impact of different clustering and set-up strategies on OEE/COO, theimpact of effective changeover management on OEE/COO, the impact ofset-up verification on OEE/COO. The cost of a single mistake and thematerial and rework cost elements may also be shown to a customer. Thecustomer can see the value of the consultants process in terms of realdollars because the customer benefit model can be quickly and easily runfor the customer.

[0137] The customer benefit tool of the present invention also providesfor a method for optimizing line performance during runtime. Accordingto this method, a consultant designs an optimized line. The consultantmay select a specific configuration or add or select specific equipmentthat will result in optimization (e.g. buffers and feeders). Staffingrequirements are defined and may include (number, skill level, andtasks). Local material management practices/levels are also defined andmay include components, WIP, and consumables. PM strategy is alsodefined and may include frequency and duration.

[0138] Software may be employed to perform line monitoring. It mayincorporate additional events not provided in the basic monitoringpackage. The software may also be useful for performing analysis, suchas providing a range of basic analysis relevant to different “UserViews.” In other words, each user, depending on his or her role, willhave a different view of the information provided by the entire system.Accordingly, each role within an organization will have access to theright information/applications in the right form to effectively performtheir tasks. For example, a line operator will have another set ofinformation than the line supervisor or the maintenance technician orthe production manager. As a further example, a solution may beexpressed in terms of capacity for line management and terms of cost ofownership for executive management. The software may assist with locallogistics. The software can manage, among other things, lists ofrequired materials to avoid run out during the next time interval(s). Itcan also provide reports of separate scrap usage of components, as wellas packaging related groups.

[0139] The benefits of the line runtime performance optimization methodinclude the following. Equipment effectiveness may be increased by up to35%. Bottleneck analysis and optimization may be provided. Material runout may be avoided. And other interrupts, such as feeder jams, mispicks,etc. may be minimized. Scrap and rework costs are reduced. The methodresults in the elimination of incorrect components added. It alsoresults in the process being optimized. Staffing costs are alsooptimized.

[0140] This method may be targeted to Type A and B production customers,as well as some Type C customers. The customer benefit tool of thepresent invention works well with this method to provide to thecustomer: the impact of different line configurations on OEE/COO; theimpact of material run out on OEE/COO; the impact of incorrect materialreplenishment on OEE/COO; the Impact of Process Yields on OEE/COO; andthe Impact of different staffing strategies on COO/OEE.

[0141] An embodiment of a consultative sales method according to thepresent invention is shown in flowchart form in FIG. 30. This embodimentof the method, like those described below, may be implemented over anytime frame, but may be most suitable for performing during aconsultation or sales session with the customer. First, at 3002, theconsultant or salesperson, after becoming familiar with the customer'selectronics assembly system needs, identifies a corresponding set of oneor more potential solutions opportunities. The solutions opportunitiesmay involve any combination of equipment and parameter settings that maybe involved in the design and/or configuration of an electronicsassembly system. At 3004, the consultant or salesperson models thecustomer's electronics assembly system, which is preferably done in“real time,” that is with the customer present, using the methods andtools described above. In this embodiment, as with the others describedherein, this approach is done using a laptop computer on which all thenecessary functionality for the methods according to the presentinvention have been programmed.

[0142] At 3006, one or more performance metrics may be defined for theelectronics assembly system. This definition can occur at any time priorto evaluating the system, and could well be determined prior to theconsulting or sales meeting by the customer. At step 3008, the potentialsolutions are prioritized by including them in the model and running themodel under these configurations, and then by comparing them with eachother and possibly with the one or more performance metrics. At step3010, one or more proposed solutions may be selected from among thosethat have been prioritized, preferably, although not necessarily,according to their priority. At step 3012, the benefit of the proposedsolution or solutions are quantified, again according to the methodsdescribed above. When the quantified benefit(s) have been computed, theycan then be communicated to the customer for his or her consideration.

[0143] Referring to FIG. 31, steps 3102 to 3112 are similar to thecorresponding and like numbered steps of the flowchart in FIG. 30. Atstep 3114, the configuration of the modeled assembly system under theone or more potential solutions may be modified, which could be thecase, for example, if the results of the modeling of those potentialsolutions (as evidenced, e.g., in the performance metrics) did notcompare favorably with customer needs and/or expectations. In thisevent, the benefit(s) of the modified proposal(s) are again quantifiedat 3116 (which would involve running the model again under themodifications), at which point a final quantified benefit may bepresented to the customer. Steps 3114 and 3116 could be repeated asnecessary, time permitting, to explore various configuration options, orto search for new possible solutions in the event that the predictedperformance of the previous potential solutions have not approachedcustomer needs.

[0144] Another embodiment of a consultative sales method according tothe present invention is shown in FIG. 32, in which the configuration,modeling and evaluation of electronics assembly configurations isperformed in an iterative manner until a performance measure satisfiesone or more customer constraints. A set of customer constraints, needs,or expectations are first identified, at 3202. As described above, thisidentification, and the rest of the method, can ideally be doneaccording to the present invention, in real time (or “on the fly”)during the course of a particular consultation or sales meeting with thecustomer. At 3204, an electronics assembly configuration (or solution)is selected. Then, at 3206, a model is established for the customerelectronics assembly system comprising the selected configuration. Themodel is run, at 3208, to generate at least one performance measure(which as in the embodiment of FIG. 30 should have been arrived at inadvance). The at least one performance measure is then compared, at3210, against the customer constraints. If, as determined at 3212, theat least one performance measure does not satisfy customer constraints,then a new electronics assembly configuration or solution can beselected, at step 3204, and the process is repeated. If, however, theperformance measures, as determined by the modeling process, do meetcustomer constraints, then at 3214, the consultant or salesperson mayoffer to sell to the customer at least a subset of the solution or ofthe electronics assembly equipment associated with that configuration orsolution.

[0145] Turning to FIG. 33, an alternative embodiment of a consultativesales method according to the present invention involves firstestablishing at 3302 a model of a customer's electronics assemblysystem, which can have a plurality of possible configurations orsolutions. A measure of performance for the assembly system is selected,as in the descriptions presented above, in accordance with customerneeds at step 3304, and a subset of the plurality of the configurations(which may be all the configurations) are selected for evaluation. Atstep 3308, a set of one or more criteria or selected for comparisonagainst the subset of the evaluated configurations. The criteria could,alternatively, have been set well in advance of the method by thecustomer alone, or by the customer with the assistance of theconsultant/salesperson, or, as shown, might theoretically be modified ifappropriate during iterations of the approach. The model is then run, at3310, to generate a predicted measure of performance for each of thesubset of configurations selected at 3306 to be evaluated. The resultsare compared at 3312 to the criteria in order to select at least onepreferred configuration. If, as determined at step 3314, it isdetermined that none of the configurations or solutions meets thecustomer criteria, control is returned to step 3306, where a new set ofconfigurations or solutions may be selected or otherwise arrived at. If,on the other hand, an evaluated configuration or solution meets thecustomer's criteria, then the method is complete, but could be followedby any number of follow sales scenarios. As before, this consultativesales process is preferably implemented using the methods and toolsdescribed above in the course of a consultation or sales meeting with acustomer.

[0146] Another aspect of the present invention concerns methods forpricing or financing electronics assembly solution or equipmentpurchases. This aspect of the present invention is based on therecognition of the potential value of customer benefit sharing in theelectronics assembly industry, as well as in the practicability of suchan approach given the methods and tools for modeling and evaluating suchsystems, as described above.

[0147] One customer benefit sharing approach according to the presentinvention is shown in the flowchart of FIG. 34, which is directed to amethod for pricing an electronics assembly system solution orconfiguration. A customer benefit that might be realized through theadoption of a proposed electronics assembly solution or configuration ispredicted (e.g., using the methods and tools described above) at step3402. A customer benefit computation may involve any measure thataffects a customer's actual or perceived valuation for an electronicsassembly system, including without limitation, the cost of ownership ofthe electronics assembly system, described above and in the literature.The purveyor of electronics assembly equipment, or of solutionsinvolving such equipment, may then generate, at step 3406, a customerbenefit guarantee associated with the electronics assembly solution. Thepurveyor's ability to generate such a guarantee with any comfort stemsfrom its ability to effectively use the methods and tools for customerbenefit modeling described above. When a customer benefit guarantee hasbeen arrived at, it is then communicated to the customer at step 3406.The purveyor can then, at step 3408, offer the electronics assemblysystem configuration or solution to the customer at a price that is afunction of the guaranteed customer benefit. For example, the price maybe set as a mutually agreeable percentage of the guaranteed benefit, sothat, from the customer's perspective, the electronics assemblyconfiguration or solution is seen as “paying for itself” in realeconomic terms. In addition, consistent with the guarantee, the purveyorcould bind itself to receive compensation, or full compensation, only ifthe guaranteed customer benefit were actually to be realized.

[0148]FIG. 35 shows an alternative approach for a purveyor ofelectronics assembly equipment and/or solutions involving such equipmentand/or related services, to engage in benefit sharing with a customer.At step 3502, an electronics assembly system solution or configurationis defined and the definition provided for customer consideration. Acustomer benefit associated with the provided solution or configurationis computer at 3504 above, and a monetary value based on the customerbenefit is computed at 3506, both steps in accordance with thetechniques described. Finally, an economic amount based on the computedmonetary value is collected from the customer, at step 3508. Thecollectible amount could be, for example, a fraction of the monetaryvalue of the customer benefit computed at step 3506, which fractioncould be the subject of negotiation between the purveyor of electronicsassembly equipment or solutions and the customer. Alternatively, thecollectible amount could be a function of the customer benefit actuallyrealized, which would involve monitoring the actual performance of theelectronics assembly system or solution purchased by the customer.

[0149]FIG. 36 provides a flowchart showing a method for selling acustomer an electronic assembly system solution according to aperformance-based contract. The purveyor of electronic assembly systemsor solutions offers, at 3602, a performance based contract for aparticular sale, where the price associated with the contract is set asa function of the performance of the system or solution that is beingoffered for sale. If the customer accepts the offer, as determined at3604, the electronics assembly system solution (which may compriseassembly equipment), is delivered to the customer at 3606. If at 3604the customer did not accept the offer, the method would be complete,although it could be re-initiated with a modified offer at 3602.Following the delivery at step 3606, the performance of the deliverablesare monitored at step 3608. Based on the monitored performance, as wellas on the price function set at 3602, the purveyor's compensation—i.e.,the price for the deliverables—is assessed. In this way, the benefit tothe customer is shared between the customer and the purveyor. Actualpayment could either be made in advance, with adjustments made as theperformance-based assessments are made, or could be made following theassessments, depending upon the two parties' preferences. As with theprevious examples, the purveyor's ability to comfortably enter into thistype of transaction depends at least in part upon an ability toadequately model the expected customer benefit in advance, which can bedone using the methods and tools described in this application.

[0150] In addition to the embodiments of the aspects of the presentinvention described above and in the code listings set forth herein,those of skill in the art will be able to arrive at a variety of otherarrangements and steps which, if not explicitly described in thisdocument, nevertheless embody the principles of the invention and fallwithin the scope of the appended claims.

What is claimed is:
 1. A method for pricing an electronics assemblysystem solution for a customer comprising the steps of: a. predicting,with the aid of a computer model, a customer benefit to be realizedthrough the use of the electronics assembly system solution; b.generating a customer benefit guarantee based on the predicted customerbenefit; and c. communicating a message relating to the customer benefitguarantee associated with the predicted customer benefit.
 2. The methodaccording to claim 1 in which the customer benefit guarantee comprises aparticular cost of ownership of the electronics assembly system.
 3. Themethod according to claim 1, wherein the prediction is performed using acomputer model that represents the electronics assembly system at amaterial flow level of abstraction.
 4. The method according to claim 1,wherein the step of predicting a customer benefit with the aid of acomputer model comprises the steps of: entering data into an inputinterface; transferring data from the input interface to a modelingtool; and building a simulation with the modeling tool utilizing thetransferred data.
 5. The method according to claim 4, wherein thesimulation comprises a discrete event simulation.
 6. The methodaccording to claim 4, wherein the step of entering data is performed ona client device and the step of building the simulation is performed ona server device.
 7. The method according to claim 4, wherein the inputinterface comprises a spread sheet.
 8. The method according to claim 4,wherein the input interface comprises a web form.
 9. The methodaccording to claim 1, wherein the computer model comprises a customizeduser interface.
 10. The method according to claim 1, wherein theprediction is performed using a computer model that represents theelectronics assembly system and simulates an aspect of the behavior ofthe system.
 11. The method according to claim 1, wherein the predictionis performed during a particular customer session.
 12. The methodaccording to claim 1, comprising the further step of offering theelectronics assembly solution at a price that is a function of theguaranteed customer benefit.
 13. The method according to claim 1,comprising the further step of offering the electronics assemblysolution at a price that is a preselected fraction of the guaranteedcustomer benefit.
 14. The method according to claim 12, wherein valuecorresponding to the price for the electronics assembly solution iscollected after the customer benefit is realized.
 15. A method forfinancing the price of a customer's purchase of an electronics assemblysystem solution, the method comprising the steps of: a. providing anelectronics assembly system solution; b. computing a customer benefitassociated with the solution; c. computing a monetary value based on thecustomer benefit; and d. collecting from the customer an amount based onthe computed monetary value.
 16. The method according to claim 15,wherein the step of computing a customer benefit comprises modeling theelectronics assembly system solution at a material flow level ofabstraction.
 17. The method according to claim 16, wherein the step ofcomputing a customer benefit comprises the steps of: entering data intoan input interface; transferring data from the input interface to amodeling tool; and building a simulation with the modeling toolutilizing the transferred data.
 18. The method according to claim 17,wherein the simulation comprises a discrete event simulation.
 19. Themethod according to claim 17, wherein the step of entering data isperformed on a client device and the step of building the simulation isperformed on a server device.
 20. The method according to claim 17,wherein the input interface comprises a spread sheet.
 21. The methodaccording to claim 17, wherein the input interface comprises a web form.22. The method according to claim 15, wherein the step of computing acustomer benefit is performed using a computer model that represents theelectronics assembly system and simulates an aspect of the behavior ofthe system.
 23. The method according to claim 15, wherein the computedmonetary value is based on actual customer benefit realized during useof the electronics assembly system solution.
 24. The method according toclaim 15, wherein the collected amount comprises a fixed price portionand a variable portion based on actual customer benefit realized duringuse of the electronics assembly system solution.
 25. The methodaccording to claim 23, wherein the customer benefit is computed using acomputer model.
 26. The method according to claim 25, wherein thecomputer model represents the system at a material flow level ofabstraction.
 27. The method according to claim 25, wherein the computermodel comprises a portion that simulates at least an aspect of thebehavior of the system.
 28. A method for selling a customer anelectronic assembly system solution, the method comprising the steps of:a. offering a performance-based contract for sale of the assembly systemsolution, wherein the price of the solution is a function of theperformance of the solution; b. upon customer acceptance, delivering theassembly system solution; c. monitoring the performance of the assemblysystem solution; and d. assessing compensation based upon the monitoredperformance and the price function.
 29. The method according to claim28, wherein the performance of the system is predicted using a computermodel.
 30. The method according to claim 29, wherein the step ofcomputing system performance comprises modeling the electronics assemblysystem at a material flow level of abstraction.
 31. The method accordingto claim 29, wherein the step of computing system performance comprisesthe steps of: entering data into an input interface; transferring thedata from the input interface to a modeling tool; and building asimulation with the modeling tool utilizing the transferred data. 32.The method according to claim 31, wherein the simulation comprises adiscrete event simulation.
 33. The method according to claim 31, whereinthe step of entering data is performed on a client device and the stepof building the simulation is performed on a server device.
 34. Themethod according to claim 31, wherein the input interface comprises aspread sheet.
 35. The method according to claim 31, wherein the inputinterface comprises a web form.
 36. The method according to claim 29,wherein the step of computing system performance is performed using acomputer model that represents the electronics assembly system andsimulates an aspect of the behavior of the system.
 37. The methodaccording to claim 29, wherein the computer model represents the systemat a material flow level of abstraction.